POI模板生成EXCEL 64000 style in a .xlsx Workbook

业务场景:

项目需要生成多个EXCEL表格,每个表格根据数据列表的大小动态增加Excel的行数,要保证新插入行的样式与模板完全一致

考虑使用以下方法保证样式的统一

复制代码
cloneStyleFrom(templateStyle);

但是由于数据量比较大,抛出如下的异常

复制代码
java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook

解决办法:

使用缓存把样式保存起来,如果缓存中取不到再次通过cloneStyleFrom(templateStyle)赋值;

然后新的异常出现了

复制代码
This Style does not belong to the supplied Workbook Styles Source. Are you trying to assign a style from one workbook to the cell of a different workbook?

最终的解决办法:

在存入缓存的key中添加Workbook的HashCode值,保证只取对应的Workbook的Style缓存,最终问题得以解决!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

相关推荐
luom010217 小时前
SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
java·spring boot·后端
毕设源码-朱学姐18 小时前
【开题答辩全过程】以 骨科术后营养餐推荐系统为例,包含答辩的问题和答案
java
丶小鱼丶18 小时前
数据结构和算法之【栈】
java·数据结构
希望永不加班18 小时前
SpringBoot 核心配置文件:application.yml 与 application.properties
java·spring boot·后端·spring
liurunlin88818 小时前
HeidiSQL导入与导出数据
java
leaves falling18 小时前
有效的字母异位词
java·服务器·前端
我真会写代码18 小时前
Spring面试高频题:从基础到源码,通俗拆解+避坑指南
java·spring·面试
huaweichenai19 小时前
java的时间操作介绍
java·开发语言
毕设源码-朱学姐19 小时前
【开题答辩全过程】以 基于SpringBoot+Vue的百货商品进出货平台为例,包含答辩的问题和答案
java·spring boot·后端
左左右右左右摇晃19 小时前
Java笔记——包装类(自动拆装箱)
java·笔记·python