Python读取CSV文件数据并写入Excel文件:解决openpyxl不支持xls格式问题
Python读取CSV文件数据并写入Excel文件:解决openpyxl不支持xls格式问题
本代码演示如何使用Python读取CSV文件中特定数据并写入已存在的Excel文件。代码中使用pandas库进行数据处理,使用openpyxl库操作Excel文件。
问题:
在使用openpyxl库写入Excel文件时,可能会遇到InvalidFileException错误,提示openpyxl does not support the old .xls file format。这是因为openpyxl库不支持旧的.xls文件格式。
解决方法:
- 将
xls文件改为xlsx文件。 - 引入
load_workbook函数来加载已存在的Excel文件。
代码示例:
import os
import pandas as pd
from openpyxl import load_workbook
path = r'C:\Users\%s\Desktop' % username
os.chdir(path)
dircontent = os.listdir(path)
for i in dircontent:
if 'BenchmarkAutomation' in i:
Z = os.path.join(path, i, 'Result')
os.chdir(Z)
dircontent = os.listdir(Z)
for file_name in dircontent:
if '[SystemInformation]' in file_name and '.csv' in file_name:
# 读取CSV文件
csv_path = os.path.join(Z, file_name)
df = pd.read_csv(csv_path)
c11_value = df.iat[9, 2]
print(c11_value)
# 写入Excel文件
excel_path = os.path.join(path, 'Ignis_ADH(IH70A) VGA regression Phase Battery life and Performance Test Report.xlsx')
writer = pd.ExcelWriter(excel_path, engine='openpyxl')
writer.book = load_workbook(excel_path)
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
df = pd.DataFrame({'Result': [c11_value]})
df.to_excel(writer, sheet_name='Result', startrow=0, startcol=7, index=False)
writer.save()
writer.close()
break
解释:
- 使用
load_workbook函数加载已存在的Excel文件,并将其赋值给writer.book属性。 - 使用
writer.sheets属性获取Excel文件中的所有工作表,并将其存储在字典中。 - 使用
df.to_excel方法将数据写入指定的Excel文件,并设置目标工作表、起始行和列。 - 使用
writer.save()方法保存修改后的Excel文件。 - 使用
writer.close()方法关闭Excel文件。
注意事项:
- 请确保已经安装了
openpyxl和pandas库。 - 请根据实际情况修改代码中的路径和文件名。
总结:
本文介绍了如何使用Python读取CSV文件数据并写入Excel文件,并解决了openpyxl库不支持旧的.xls文件格式的问题。希望本文能够帮助您解决类似的问题。
原文地址: https://www.cveoy.top/t/topic/ood7 著作权归作者所有。请勿转载和采集!