我正在使用lucee-spreadsheet,这是一个很棒的工具。我正在制作一个非常大的电子表格(工作簿中有多张表,每张表有数千行)。一切都按预期工作。我已经用数据填充了工作表,并在客户想要的组之间创建了空白行。我现在回去尝试应用一些格式,我遇到了错误:
超出了最大单元格样式数。您最多可以定义 .xls工作簿中的4000个样式
问题是我只尝试应用一种风格:
spreadsheet.formatColumns(workbook=workbook, format={dataformat="$##,####0.00"},range='5-20');
我还需要应用其他一些风格。我猜测,因为有超过500行,并且这种样式被应用于16列,该样式实际上是格式化每个单元格而不是列。
我可以采用或不应该使用这种风格吗?
答案 0 :(得分:5)
查看lucee-spreadsheet source code,formatColumns
正在为其格式化的每个单元格创建新的单元格样式。不幸的是,这是次优的,并且对于Excel 97(HSSF)电子表格格式,电子表格中样式的Apache POI限制正在受到限制。最好使用重用单元格样式的formatCellRange
,直到维护者实现更好的formatColumns
函数来利用样式重用。
答案 1 :(得分:1)
可能有用的一件事是将输出格式从.xls
切换为.xlsx
。使用.xls
格式,我只在电子表格的前156行看到格式。这是.xls文件格式的限制。我使用了spreadsheet.newXlsx()
代替spreadsheet.new()
,并且能够生成xlsx
文件,并且正在为我正在使用的750行正确显示格式。