设置 lucee 电子表格格式时出错:超出了单元格样式的最大数量



我正在使用lucee-spreadsheet,这是一个很棒的工具。我正在制作一个非常大的电子表格(工作簿中的多个工作表,每张工作表有数千行)。一切都按预期工作。我用数据填充了工作表,并在客户想要的组之间创建了空白行。我现在返回并尝试应用一些格式,但遇到了错误:

超过了最大单元格样式数。您最多可以定义 .xls工作簿中有 4000 个样式

问题是我只尝试应用一种样式:

spreadsheet.formatColumns(workbook=workbook, format={dataformat="$##,####0.00"},range='5-20');

我还需要应用许多其他样式。 我猜测,由于有超过 500 行并且此样式应用于 16 列,因此该样式实际上是格式化每个单元格而不是列。

有没有一种不同的方式可以或应该应用这种风格?

查看 lucee-spreadsheet 源代码,formatColumns 正在为其格式化的每个单元格创建新的单元格样式。不幸的是,这是次优的,并且 Apache POI 中对电子表格中样式的限制正在被 Excel 97 (HSSF) 电子表格格式所触及。最好使用 formatCellRange ,它重用单元格样式,直到维护者实现更好的formatColumns函数以利用样式重用。

可能会有所帮助的一件事是将输出格式从 .xls 切换到 .xlsx . 使用 .xls 格式时,我只在电子表格的前 156 行看到格式。 这是.xls文件格式的限制。 我使用 spreadsheet.newXlsx() 而不是 spreadsheet.new() ,并且能够生成一个xlsx文件,并且我正在使用的 750 行的格式正确显示。

最新更新