xlwt установить стиль делает ошибку: более 4094 XFs (стили)
Я использую Xlwt для написания файла excel. это ячейки имеют некоторый стиль (цвет, выравнивание, границы,... )
когда я использую XFStyle и устанавливаю границы и другие attr стиля, в некоторых случаях он делает ошибку: Более 4094 XFs (стили)
Почему? что мне делать с этой ошибкой?
спасибо
3 ответов
Я читаю и отслеживаю функции и методы, которые вызывают во время выполнения.
Я нашел решение:
wb = xlwt.Workbook(style_compression=2)
использование : style_compression=2
свою работу!
столкнувшись с той же проблемой в цикле, я извлек описание формата из цикла, и он продолжил плавно:
это не работает:
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 различных экземпляров стилей (важно, а не разные стили, этого достаточно, если вы создаете новые экземпляры стиля).
в нашем случае у нас было что-то вроде:
for i, row in enumerate(rows):
workbook.write(i, 0, row, currency_formatter(row))
где форматер валют был создан новый стиль для каждой строки.
что мы должны были сделать, было стиль кэша для каждой валюты, если стиль был одинаковым.
Итак, правильное исправление - не создавать так много стилей!