如何使用openpyxl编辑Excel2007文件(.xlsx)而不改变其样式?
我有一个.xlsx格式的文件需要编辑,我发现openpyxl这个工具可以处理Excel 2007的文件。
我只想修改一些单元格的值,其他设置不想动。
但是我看过文档后,发现里面没有关于如何编辑已有文件的例子。文档里只演示了如何读取一个.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')
2 个回答
1
在openpyxl这个库里,样式还没有完全支持。确保你使用的是最新版本(目前是1.5.3),因为最近这个版本在样式功能上有了改进。
而xlwt这个库对.xls文件的格式化支持更全面,但目前还不支持.xlsx格式。
18
现在,openpyxl 处理样式的能力不太够,所以我尝试使用 pywin32 COM,找到了一个解决办法。这里有一个不错的 python-excel-mini-cookbook,可以教你如何用 pywin32 COM 来操作 Excel。