当前位置: 首页 > 知识库问答 >
问题:

设置Lucee-Spreadsheet格式时出错:超出了单元格样式的最大数目

怀宇
2023-03-14

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

已超过单元格样式的最大数目。在.xls工作簿中最多可以定义4000个样式

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

电子表格.FormatColumns(workbook=工作簿,format={dataformat=“$##,####0.00”},range='5-20');

还有很多其他的风格我需要应用。我猜想,由于有超过500行,并且这种样式被应用于16列,所以这种样式实际上是格式化每个单元格,而不是格式化列。

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

共有2个答案

关正雅
2023-03-14

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

郭德惠
2023-03-14

查看lucee-spreadsheet源代码FormatColumns正在为它格式化的每个单元格创建一个新的单元格样式。不幸的是,这是次优的,Apache POI对Excel97(HSSF)电子表格格式的样式的限制正在被打破。最好使用可重用单元格样式的FormatCellRange,直到维护者实现更好的FormatColumns函数以利用样式重用。

 类似资料:
  • 如何为单个单元格设置两种不同的样式?当前我正在显示中的单元格值 粗体 货币格式,例如:.

  • setColumn 样式影响范围为整列。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一列、第二列、第三列、第四列 整列。 函数原型 setColumn(string $range, double $width [, resource $formatHandler]); string $range $config = ['path' =>

  • setRow 样式影响范围为整行。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一行整行。 如果是 A1:B3 ,就会设置 第一行、第二行、第三行样式,因为单元格范围覆盖了 第一行、第二行、第三行。 函数原型 setRow(string $range, double $height [, resource $formatHandler]);

  • 我是Java编程的新手,这是我的第一篇文章,所以希望这是一个有效的问题。我翻遍了档案,但找不到合适的答案。 我的班级正在阅读和验证一个电子表格。错误的单元格被设置为带有红色背景的样式,有效的单元格被设置为没有反循环的样式。这一切都很好,直到遇到日期单元格。setCellStyle语句似乎正在清除日期格式。有人能告诉我如何防止这种情况吗? 因此,首先在Excel中查看单元格时,它显示25/08/20

  • table单元格选中,存在合并的单元格时,选中样式和期望的不一样,如何解决这个问题? 不存在单元格合并时不存在这个问题: 存在单元格合并时: 想要的是这种 目前合并实现方案,是获取起始点击的单元格坐标,为选中的每一个单元格坐标添加选中样式。 有无好的解决办法?