【发布时间】: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