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缓存,最终问题得以解决!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

相关推荐
devpotato16 分钟前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl092527 分钟前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk36 分钟前
Java--IO--Path文件访问
java·后端
qinqinzqq40 分钟前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven
o盟1 小时前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea
devpotato1 小时前
Java 批量并发请求:从“能并发“到“结果按完成顺序可用“的三种写法与选型
java
苏生Susheng2 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
想要成为老金高手2 小时前
Kubernetes 调度器详解:从 nodeName 到污点容忍
java·容器·kubernetes
吴长建先生重名了2 小时前
ElasticSearch 检索系统性能优化实战:基准测试
java
小白学大数据2 小时前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel