我正在使用lucee-spreadsheet,这是一个很棒的工具。我正在制作一个非常大的电子表格(一个工作簿中有多个工作表,每个工作表有数千行)。一切按预期进行。我已经用数据填充了工作表,并在客户机需要的组之间创建了空白行。我现在返回并尝试应用一些格式设置,但遇到错误:
已超过单元格样式的最大数目。在.xls工作簿中最多可以定义4000个样式
问题是我只尝试应用了一种风格:
电子表格.FormatColumns(workbook=工作簿,format={dataformat=“$##,####0.00”},range='5-20');
还有很多其他的风格我需要应用。我猜想,由于有超过500行,并且这种样式被应用于16列,所以这种样式实际上是格式化每个单元格,而不是格式化列。
有没有一种不同的方式,我可以或应该应用这种风格?
将输出格式从.xls
切换到.xlsx
可能会有帮助。使用.xls
格式时,我只看到电子表格前156行的格式。这是.xls文件格式的一个限制。我使用了spreadsheet.newxlsx()
而不是spreadsheet.new()
,并且能够生成一个xlsx
文件,并且我正在处理的750行的格式显示正确。
查看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单元格选中,存在合并的单元格时,选中样式和期望的不一样,如何解决这个问题? 不存在单元格合并时不存在这个问题: 存在单元格合并时: 想要的是这种 目前合并实现方案,是获取起始点击的单元格坐标,为选中的每一个单元格坐标添加选中样式。 有无好的解决办法?