2016-11-16 92 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