熊猫写入 excel 工作表删除文件中的其他工作表

新手上路,请多包涵

我有简单的代码将 python 数据框导出到现有的带有工作表的 excel 文件,但作者不断从文件中删除现有的工作表

read = pd.ExcelFile('Saw_Load.xlsx')
print(read.sheet_names)
writer = pd.ExcelWriter('Saw_Load.xlsx')
result.to_excel(writer,'saw', index = False)
read2 = pd.ExcelFile('Saw_Load.xlsx')
print(read2.sheet_names)
writer.save()

这是我得到的输出

['saw', 'Pivot']
['saw']

我们可以清楚地看到在使用 to_excel 函数之前有 2 张(saw,Pivot)。只有一个“锯”之后

它可能是公式中的一个简单修复,但似乎找不到任何有效的方法。任何帮助将不胜感激

谢谢

原文由 Shri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

你的问题是 你不再写旧的 sheets 这本书包含了。假设您需要再次从头开始编写它,但不需要再次执行 to_excel ,只需指定工作簿即可。

发生这种情况是因为 xlsxwriter 创建了一个新文件,所以旧文件被 删除 了。

您可以使用 writer.bookwriter.sheets 对象来完成。

 excelBook = load_workbook(filename)
with pd.ExcelWriter(filename, engine='xlsxwriter') as writer:
    # Save your file workbook as base
    writer.book = excelBook
    writer.sheets = dict((ws.title, ws) for ws in excelBook.worksheets)

    # Now here add your new sheets
    result.to_excel(writer,'saw', index = False)

    # Save the file
    writer.save()

注意:请注意,我使用了 load_workbook 来自 openpyxl ,但你可以使用 Excelfile --- ,但只需稍作改动即可重现它

原文由 Btc Sources 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试这个:

 with pd.ExcelWriter('Saw_load.xlsx', engine="openpyxl", mode="a") as writer:
    result.to_excel(writer, sheet_name="name_of_sheet")

希望这可以帮助!

原文由 Kriticoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题