我有一个.xslx文件,它具有特定的格式和对象,我正在使用这些文件来计划大规模生成的报告蟒蛇。我原本是openpyxl来加载模板的副本(openpyxl.load_workbook()),向文件中写入一个Pandas数据框(openpyxl.dataframe_to_rows()),然后保存该文件以备将来分发。我发现openpyxl.load_workbook不会加载格式或对象,因此它们将从新文件中删除。所以然后尝试xlrd打开文件(xlrd.open_workbook()),正确加载格式和对象。但是,openpyxl将不再写入创建模板文件的空副本的文件。是否有另一个我可以用来处理读/写的软件包,或者我可以用来代替openpyxl的软件包? Xlsxwriter也没有工作。查看下面的代码示例。Python Xlrd导入.xslx模板,使用Openpyxl编辑并重新保存.xslx文件
from xlrd import open_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd
import shutil
shutil.copy2('template.xlsx', 'new_report.xlsx')
book = open_workbook('new_report.xlsx')
writer = pd.ExcelWriter(book, engine='openpyxl')
ws = book.sheet_by_name('Sheet1')
for r in dataframe_to_rows(result, index=False, header=False):
ws.cell(colx=1, rowx=1)
ws.append(r)
book.save('new_report.xlsx')
我也越来越错误:“AttributeError的:‘书’对象有没有属性‘保存’”和“AttributeError错误:‘表’对象有没有属性‘追加’”从代码,如果任何人有对这些问题的建议。
熊猫在阅读Excel文件时内部使用xlrd,但所有格式都将丢失,因为数据帧没有任何格式。 –
不确定为什么反投票但xlrd会保留现有Excel文件中的所有格式和对象。我只需要找到一种方法来添加内容到文件而不覆盖任何现有的格式或对象。 – Abootman