我正在尝试使用python将一些图标集添加到现有的excel文件中。
excel文件是使用xlsxwriter编写的。由于xlsxwriter不支持图标集,因此我关闭了文件,使用openpyxl重新打开它,添加了图标集并再次保存。问题是,我失去了之前添加的所有条件格式。在openpyxl中使用“ keep_vba ​​= True”打开文件会导致xlsx文件不可读。

任何想法如何实现这一目标?

提前致谢!

附注:缺少一些细节。抱歉我在两种情况下(xlsxwriter和openpyxl)都编写xlsx文件,并在具有excel 2013的Windows机器上使用python 2.7和最新版本的openpyxl和xlsxwriter。图标集是一些小符号,如箭头(向上,向下),可以在有条件的情况下使用格式化。

最佳答案

OpenPyXl支持条件格式和图标集。

请参阅官方文档:Conditional Formatting > IconSet

这是一个例子:

>>> from openpyxl.formatting.rule import IconSet, FormatObject
>>> first = FormatObject(type='percent', val=0)
>>> second = FormatObject(type='percent', val=33)
>>> third = FormatObject(type='percent', val=67)
>>> iconset = IconSet(iconSet='3TrafficLights1', cfvo=[first, second, third], showValue=None, percent=None, reverse=None)
>>> # assign the icon set to a rule
>>> from openpyxl.formatting.rule import Rule
>>> rule = Rule(type='iconSet', iconSet=iconset)

10-05 21:29