在现有的excel表格中填写pd数据框(使用openpyxl v2.3.2)

我想把一些pandas数据框填入现有的 excel文件中。 我遵循的指示: 如何写入现有的Excel文件,而不覆盖数据(使用pandas)? 使用:

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() 

但是,现有的工作表将被删除,“示例”工作表被生成,只有df被集成在定义的位置。 我做错了什么? 我想把“data_df”写入现有的“示例”表格中现有的excel文件中,保留其他表单和数据。

谢谢

示例df:

 data_df=pd.DataFrame(np.arange(12).reshape((2, 6)), index=["Time","Value"]) 

我自己解决了这个问题。 我意识到,即使load_workbook无法加载我的文件。 所以我更新了openpyxl包 (conda install openpyxl)。 该版本不工作是:v2.3.2 (python35)。 现在工作版本是:v2.4.0。

我真的不知道,如果这是最后的原因。 但是,现在的优势是填补了定义的位置和数据保存。

您可能对学习xlwings感兴趣,这使得使用python的excel文件变得更容易。

在任何情况下,我都会先阅读工作表中的现有数据,然后按照您的意愿在Python中合并数据,最后覆盖工作表。