问题描述:
java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32,767 characters
at org.apache.poi.xssf.usermodel.XSSFCell.setCellValue(XSSFCell.java:436)
at org.apache.poi.xssf.usermodel.XSSFCell.setCellValue(XSSFCell.java:417)
问题分析:
错误信息中的关键部分是:
The maximum length of cell contents (text) is 32,767 characters
将超过 Excel 单元格内容最大长度限制(32,767 个字符)的文本设置到了一个单元格中设置失败。Excel 单元格的文本内容长度是有限制的,这个限制是为了防止性能问题和确保文件的兼容性。
解决方案:
截断文本:在将文本设置到单元格之前,确保文本长度不超过 32,767 个字符。你可以在 Java 中使用 String 类的 substring 方法来截断过长的文本。
String originalText = "xxxxx"; // 原始文本
if (originalText.length() > 32767) {
originalText = originalText.substring(0, 32767);
}
cell.setCellValue(originalText);