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

时间:2013-06-16 05:36:30

标签: python excel xlwt

我使用Xlwt编写excel文件。它的细胞有一些风格(颜色,对齐,边框,......)

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

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

感谢

3 个答案:

答案 0 :(得分:16)

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

我找到解决方案:

wb = xlwt.Workbook(style_compression=2)

使用:style_compression = 2

它的工作!

答案 1 :(得分:5)

在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)

答案 2 :(得分:2)

因此,对于后代,无论您是在寻找答案,您的代码都会出错。

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

在我们的案例中,我们有类似的东西:

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

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

我们必须做的是,如果样式相同,则按每种货币缓存样式。

所以,正确的解决方法不是创建这么多样式!

干杯,迈克。