这里是Java 8和ApachePOI4.x。我发现证物只能通过dataFormat.getFormat(...)获得64K不同的数据格式。但这是否意味着只要应用程序使用64K (或更少)不同的数据格式,就可以多次调用dataFormat.getFormat(...)?或者这是否意味着您只能应用格式设置(因此在开始错误之前调用dataFormat.getFormat(...) 64K?)
发布于 2019-12-25 09:11:33
“太多不同的单元格格式”错误是由于对不同单元格格式的Excel限制而导致的。这仅与不同的数据格式有间接关系,因为单元格可能不仅具有以单元格格式设置的数据格式,还可能具有字体格式、边框格式和内部格式(颜色)。限制是:在当前的Excel版本中,一个Excel工作簿中不能有超过64,000种不同的单元格格式。不同的单元格格式意味着数据格式、字体格式、边框格式、内部格式、.
因此,理论上,您可以有超过64,000种不同的数据格式,但您不能在一个工作簿的不同单元格样式中使用其中的64,000多个。
类DataFormat of apache poi使用short来索引不同的数据格式。由于short的最大值为32,767,索引以0开头,因此您不能使用Workbook在一个apache poi中创建超过32,768种不同的数据格式。
注意:所有这些都是关于不同的格式的。因此,只要所需的DataFormat.getFormat数据格式不超过32,768 ,您就可以根据需要调用,而不会出现错误。
例如,您可以调用CellUtil.setCellStyleProperty
...
Workbook workbook = ...
DataFormat dataFormat = workbook.createDataFormat();
...
... {
Cell cell = ...
...
CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, dataFormat.getFormat("#,##0.00"));
...
}
...根据需要,即使在一个循环中有超过64000个单元,因为dataFormat.getFormat("#,##0.00")总是多次只获得相同的数据格式索引。
https://stackoverflow.com/questions/59470082
复制相似问题