客户的需求
–出历的Excel左侧设置 缩进展开栏
例:

由于 行是动态的, 需要动态生成 Group
一切都正常, 但是今天突然出现 有一部分的group 不生效的问题

直接说问题点
这是由于 设置的行 已经写入了磁盘 在内存找不到
row行数超过了 SXSSFWorkbook对象的 内存窗口大小 就会写入磁盘
比如 窗口参数为100 写到101行 就会将1 写入磁盘, 内存保留2~101行
//设置内存窗口为 100行
SXSSFWorkbook workbook = new SXSSFWorkbook(xssfWorkbook,100);
//如果总行数为 110行 那内存窗口中能指向的对象是 10行~110行的Row对象</

在使用SXSSFWorkbook处理动态行数的Excel时,遇到设置行组(groupRow)不生效的问题。原因是行数超过SXSSFWorkbook的内存窗口大小,导致已写的行被写入磁盘,内存中找不到对应行。解决方法包括设置窗口参数为-1以保存所有行,或者先写入磁盘再用XSSFWorkbook读取并设置行组。对于超大量数据,如10w+行,建议采用后者避免内存压力。
最低0.47元/天 解锁文章
4766

被折叠的 条评论
为什么被折叠?



