将pd数据框填充到现有的Excel工作表中(使用openpyxl v2.3.2)

4

我希望将一些pandas数据框填充到一个已存在的excel文件中。我按照以下指示操作: 如何使用pandas在不覆盖数据的情况下向现有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()

然而,现有的表格将被删除,生成“example”表格,并在定义位置仅集成df。我做错了什么?我想将“data_df”写入现有的Excel文件中的现有“example”表格,保留其他表格和数据。

谢谢

示例df:

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

3
我自己解决了这个问题。我意识到即使使用 load_workbook 也无法加载我的文件。因此,我 更新了 openpyxl 包 (conda install openpyxl)。不起作用的版本是:v2.3.2(python 35)。现在工作的版本是:v2.4.0。

我真的不知道最终是什么原因。但现在,Excel 文件在定义的位置中填充,并且数据得到保留。


1

您可能对学习xlwings感兴趣,它可以使从Python处理Excel文件变得更加容易。

无论如何,我建议首先读取工作表中的现有数据,在Python中按照您的意愿组合数据,最后覆盖工作表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接