【问题标题】:Error formatting a lucee-spreadsheet: The maximum number of cell styles was exceeded格式化 lucee 电子表格时出错:超出了最大单元格样式数
【发布时间】:2016-11-15 13:03:44
【问题描述】:

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

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

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

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

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

我可以或应该以不同的方式应用这种风格吗?

【问题讨论】:

标签: excel coldfusion apache-poi lucee


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我是维护者。感谢您指出了这一点。那部分代码是从以前的项目中继承的,但我会提出一张票,看看是否可以按照您的建议进行改进。再次感谢。
    • 谢谢你们,我将切换到 formatCellRange 并从 cfSimplicity 中寻找更新。
    • 这一切都由@CfSimplicity 在库中修复。很棒的工具
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2012-03-13
    • 2014-07-03
    • 2021-07-16
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多