我有一个.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')
答案 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
CastorMarshaller