2016-11-16 138 views
2

我有使用openpyxl将熊猫df写入excel文件的脚本代码。见Fill in pd data frame into existing excel sheet (using openpyxl v2.3.2)用xlsxwriter将熊猫df写入excel文件?

from openpyxl import load_workbook 
import pandas as pd 
import numpy as np 

book=load_workbook("excel_proc.xlsx") 
writer=pd.ExcelWriter("excel_proc.xlsx", engine="openpyxl") 
writer.book = book 
writer.sheets = dict((ws.title, ws) for ws in book.worksheets) 
data_df.to_excel(writer, sheet_name="example", startrow=100, startcol=5, index=False) 
writer.save() 

该过程正常工作。但是,每个返回的excel文件在打开时报告它已损坏,因为内容不可读。 Excel可以修复它并再次保存。但这必须手动完成。由于我必须处理很多文件,我该如何解决/绕过?

或者,我该如何更改代码才能使用“xlsxwriter”而不是“openpyxyl”?

当我只是用“engine =”xlsxwriter“”交换“engine =”openpyxl“”时,python告诉我“'工作表''对象在data_df.to_excel行没有'write'属性。

此外:Excel告诉我“已删除的记录名为/xl/workbook.xml部分的范围”是损坏,必须修复。我不知道,这是什么意思

+0

尝试导入** xlsxwriter **包 – Shiva

+0

您确定安装了xlsxwriter(并且它是最新版本)吗? – Clusks

+0

你能发布一个破坏excel文件的__reproducible__代码吗?当我尝试你的代码 - 它对我来说工作得很好。 – MaxU

回答

2

我想你必须使用openpyxl,因为xlsxwriter不支持修改现有的Excel XLSX文件。

docs

  • 不能读取或修改现有的Excel XLSX文件。
+0

谢谢!那是我得到同样的答案。 – Rockbar