在openpyxl中保留原始单元格格式

Sam*_*Sam 7 python excel python-2.7 openpyxl

我使用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')
Run Code Online (Sandbox Code Playgroud)

单元格A1的填充丢失.电子表格中有很多格式,因此我不想手动指定所有格式.我曾尝试将单元格的原始格式从自身复制到无效.此代码不起作用:

ws['A1'].style = ws['A1'].style
Run Code Online (Sandbox Code Playgroud)

有没有办法保留和/或复制excel电子表格的原始样式/格式,只能写入数据?

小智 1

我发现,如果原始单元格之前确实有值,则格式将被保留。我正在使用“模板”excel 来填写数据并生成报告。不幸的是,使用这种方法,我需要在模板中预先填充虚拟值(创建巨大的模板文件),此外,还需要确保从工作表中未填充数据的区域中删除虚拟值。这很痛苦,但至少格式仍然保留在那里