格式化lucee-spreadsheet时出错:超出了最大单元格样式数

时间:2016-07-13 05:25:04

标签: excel coldfusion apache-poi lucee

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

  

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

问题是我只尝试应用一种风格:

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

我还需要应用其他一些风格。我猜测,因为有超过500行,并且这种样式被应用于16列,该样式实际上是格式化每个单元格而不是列。

我可以采用或不应该使用这种风格吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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