xlwt设置样式制作错误:超过4094个XF(样式)

我用Xlwt编写一个excel文件。 它的单元格有一些风格(颜色,alignment,边框,…)

当我使用XFStyle并设置样式的边框和其他属性时,在某些情况下会出现错误:超过4094个XF(样式)

为什么? 我该怎么办这个错误?

谢谢

我读取和跟踪执行期间调用的函数和方法。

我find解决办法:

wb = xlwt.Workbook(style_compression=2) 

使用:style_compression = 2

是工作!

在LOOP中遇到同样的问题时,我已经从循环中提取了格式的描述,并且顺利地继续:

这不起作用:

 for ... : ws. row(row_index).write(col_index, value, easyxf('pattern: pattern solid, fore_colour yellow; align: wrap 1')) 

但是这样做:

 ostyle = easyxf('pattern: pattern solid, fore_colour yellow; align: wrap 1') for .... : ws.row(row_index).write(col_index, value,ostyle) 

所以,对于后代,无论你在寻找答案,你在代码中做错了什么。

基本上,你的代码会发生什么,你生成了超过4094个不同的样式实例(重要的,不是不同的样式,如果你创build新的样式实例就足够了)。

在我们的情况下,我们有这样的事情

 for i, row in enumerate(rows): workbook.write(i, 0, row, currency_formatter(row)) 

货币格式化程序为每一行创build了新的样式。

我们所要做的就是在样式相同的情况下caching每种货币的样式。

所以,正确的解决办法不是创造这么多的风格!

干杯,迈克。