使用openpyxl编辑Excel2007文件(.xlsx)而不更改自己的样式?

时间:2011-07-21 07:04:44

标签: python excel-2007 openpyxl

我有一个.xlsx文件要编辑,我发现openpyxl可能会操纵Excel 2007文件。 我只想更改某些单元格中的值并保持其他设置不变。

但在我浏览Documentation之后,我找不到编辑现有文件的示例。它只演示了读取.xlsx文件并写入新文件。

我尝试以下方式编辑现有文件,但在保存之后,文件中的样式已被删除(如字体,颜色):

from openpyxl.reader.excel import load_workbook
wb=load_workbook(r'd:\foo1.xlsx')
ws=wb.get_sheet_by_name('Bar')
ws.cell('A1').value= 'new_value'
# save the workbook to a new file to finish the editing
# but the style settings has been removed (such like font, color) in the new file
wb.save(r'd:\foo2.xlsx')

3 个答案:

答案 0 :(得分:14)

现在openpyxl无法处理足够好的样式,所以我尝试使用pywin32 COM并得到解决方案。 这是一个很好的python-excel-mini-cookbook使用pywin32 COM for Excel

答案 1 :(得分:1)

openpyxl尚未完全支持样式。确保你使用的是latest version(现在的1.5.3),因为它最近改进了它的风格功能。

xlwt对.xls文件有更完整的格式,但到目前为止还不支持xlsx。

答案 2 :(得分:-5)

尝试以下代码创建以下类的实例:

来自openpyxl import load_workbook

使用openpyxl管理Excel数据的类

CastorMarshaller

永不放弃!!!