使用 `openpyxl` 库
`openpyxl` 是一个专门用于读写 `.xlsx` 格式 Excel 文件的库。
import openpyxl
# 读取 Excel 文件
def read_excel(file_path):
try:
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
data = []
for row in sheet.iter_rows(values_only=True):
data.append(row)
return data
except Exception as e:
print(f"读取文件时出错: {e}")
return []
# 写入 Excel 文件
def write_excel(file_path, data):
try:
workbook = openpyxl.Workbook()
sheet = workbook.active
for row in data:
sheet.append(row)
workbook.save(file_path)
print(f"数据已成功写入 {file_path}")
except Exception as e:
print(f"写入文件时出错: {e}")
if __name__ == "__main__":
# 读取示例
file_to_read = "example.xlsx"
read_data = read_excel(file_to_read)
print("读取的数据:")
for row in read_data:
print(row)
# 写入示例
data_to_write = [
["姓名", "年龄", "城市"],
["张三", 25, "北京"],
["李四", 30, "上海"]
]
file_to_write = "output.xlsx"
write_excel(file_to_write, data_to_write)
使用 `pandas` 库
`pandas` 是一个功能强大的数据处理库,它可以方便地处理 Excel 文件。
import pandas as pd
# 读取 Excel 文件
def read_excel_pandas(file_path):
try:
df = pd.read_excel(file_path)
return df.to_csv(sep='\t', na_rep='nan')
except Exception as e:
print(f"读取文件时出错: {e}")
return None
# 写入 Excel 文件
def write_excel_pandas(file_path, data):
try:
df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel(file_path, index=False)
print(f"数据已成功写入 {file_path}")
except Exception as e:
print(f"写入文件时出错: {e}")
if __name__ == "__main__":
# 读取示例
file_to_read = "example.xlsx"
read_data = read_excel_pandas(file_to_read)
print("读取的数据:")
print(read_data)
# 写入示例
data_to_write = [
["姓名", "年龄", "城市"],
["张三", 25, "北京"],
["李四", 30, "上海"]
]
file_to_write = "output_pandas.xlsx"
write_excel_pandas(file_to_write, data_to_write)
代码说明
`openpyxl` 部分
- **读取操作**:`openpyxl.load_workbook()` 用于加载 Excel 文件,`sheet.iter_rows(values_only=True)` 用于逐行迭代工作表中的数据。
- **写入操作**:`openpyxl.Workbook()` 创建一个新的工作簿,`sheet.append(row)` 用于逐行添加数据,最后使用 `workbook.save()` 保存文件。
`pandas` 部分
- **读取操作**:`pd.read_excel()` 用于读取 Excel 文件并返回一个 `DataFrame` 对象,`df.to_csv(sep='\t', na_rep='nan')` 将数据以制表符分隔的格式输出。
- **写入操作**:`pd.DataFrame()` 将数据转换为 `DataFrame` 对象,`df.to_excel()` 将数据写入 Excel 文件,`index=False` 表示不写入行索引。
你可以根据自己的需求选择合适的库来进行 Excel 文件的读写操作。在运行代码前,请确保已经安装了相应的库,可使用 `pip install openpyxl` 或 `pip install pandas` 进行安装。