首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache限制与方法调用

Apache限制与方法调用
EN

Stack Overflow用户
提问于 2019-12-24 14:17:07
回答 1查看 168关注 0票数 0

这里是Java 8和ApachePOI4.x。我发现证物只能通过dataFormat.getFormat(...)获得64K不同的数据格式。但这是否意味着只要应用程序使用64K (或更少)不同的数据格式,就可以多次调用dataFormat.getFormat(...)?或者这是否意味着您只能应用格式设置(因此在开始错误之前调用dataFormat.getFormat(...) 64K?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

代码语言:javascript
复制
...
Workbook workbook = ...
DataFormat dataFormat = workbook.createDataFormat();
...
... {
 Cell cell = ...
 ...
 CellUtil.setCellStyleProperty(cell, CellUtil.DATA_FORMAT, dataFormat.getFormat("#,##0.00"));
 ...
}
...

根据需要,即使在一个循环中有超过64000个单元,因为dataFormat.getFormat("#,##0.00")总是多次只获得相同的数据格式索引。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59470082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档