【问题标题】:Write pandas df into excel file with xlsxwriter?使用 xlsxwriter 将 pandas df 写入 excel 文件?
【发布时间】:2017-03-30 17:07:26
【问题描述】:

我已经编写了用于使用 openpyxl 将 pandas df 写入 excel 文件的脚本代码。见Fill in pd data frame into existing excel sheet (using openpyxl v2.3.2)

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="openpyxl"" 与 "engine="xlsxwriter"" 交换时,python 告诉我 data_df.to_excel 行中的“'Worksheet' 对象没有属性 'write'”。

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

【问题讨论】:

  • 尝试导入 xlsxwriter
  • 你确定安装了 xlsxwriter(它是最新版本)吗?
  • 你能发布一个 reproducible 损坏 excel 文件的代码吗?当我尝试你的代码时 - 它对我来说很好。
  • 我在 jupyter 中有它,我必须评估更多的东西。我不得不掩盖很多事情,因为它是机密的。让我看看……
  • 我用压缩工具打开了xlsx文件,发现和原来相比,很多文件夹消失了。此外,处理的文件中的某些格式也会损坏。此外,部分excel文件丢失的图像。似乎是这样,保存过程“破坏”了 excel 文件。

标签: python excel pandas dataframe


【解决方案1】:

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

来自docs

  • 无法读取或修改现有的 Excel XLSX 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2016-03-28
    相关资源
    最近更新 更多