我使用openpyxl版本2.3.5将数据写入现有的格式化Excel模板(扩展名为.xlsx)。问题是当我写入单元格时,该单元格的格式被完全覆盖。例如,Cell A1具有蓝色填充。当我执行以下代码时:
wb = xl.load_workbook('Template.xlsx')
ws = wb.worksheets[0]
ws['A1'] = "TEST"
wb.save('test.xlsx')
单元格A1的填充丢失。电子表格中有很多格式,因此我不想手动指定所有格式。我曾尝试将单元格的原始格式从自身复制到无效。此代码无效:
ws['A1'].style = ws['A1'].style
有没有办法保留和/或复制excel电子表格的原始样式/格式,只能写入数据?
答案 0 :(得分:0)
好吧,openpyxl还没有很好的解决方案。但是,您可以使用pywin32直接与Windows API进行交互。您可以在那里做任何想要的事情。
答案 1 :(得分:0)
我发现,如果原始单元格以前具有值,则将保留格式。我正在使用“模板”擅长填写数据并生成报告。不幸的是,使用这种方法时,我需要在模板中预先填充虚拟值(创建巨大的模板文件),还需要确保在不填充数据的区域中从表中删除了虚拟值。这很痛苦,但至少格式仍然保留在那里