Excel中sheet名字最大长度的坑

来源:互联网 发布:单片机产生时序信号 编辑:程序博客网 时间:2024/05/22 14:14

今天业务说导出一个多sheet的功能报错了:

java.lang.RuntimeException: 导出数据出现异常:The workbook already contains a sheet named 'MOLU692473423-1-GLE 320 4MATIC (166062 | DA6CB)'
。。。。。。
看错误提示是因为再workbook中出现了同名sheet,因此报错。由于sheet名字是由三个字段值拼接而成,如果数据在不同的sheet里那么这三个值拼接后绝对不相同,本地调试发现在workbook.createSheet(key)时候出的问题,key就是三个字段值拼接而成的字符串,一方面用来对原始数据进行分组以便于放到不同的sheet里,另一方面用这个key来作为sheet名字以明显区分数据。问题原因:
Excel中sheet命名有如下规则:
(1)sheet名称不能多于31个(包含英文、汉字、| 、()等,但是不能包含: 、/、?、*、[]等 ),程序中使用poi工具来生成的时候,传进去大于31个长度的字符串时,会被自动截取,例如上面报错的信息,正常的话生成的sheet名字应该是“
MOLU692473423-1-GLE 320 4MATIC ”。
(2)sheet名字不能为空,如果key = null 或者“”也会报错。
这次出现这个问题实属没有想到,也算是学习了。

原创粉丝点击