Excel导出字符超长处理,The maximum length of cell contents (text) is 32767 characters 异常处理
异常信息
java.lang.IllegalArgumentException:The maximum length of cell contents (text) is 32767 characters
at org.apache.poi.ss.usermodel.CellBase.checkLength(CellBase.java:309)
at org.apache.poi.ss.usermodel.CellBase.setCellValue(CellBase.java:290)
at com.alibaba.excel.write.executor.AbstractExcelWriteExecutor.converterAndSet(AbstractExcelWriteExecutor.java:86)
at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:174)
at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:82)
at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:58)
at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:59)
at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:70)
at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:47)
at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:62)
/**
* Excel97 format aka BIFF8
* <ul>
* <li>The total number of available rows is 64k (2^16)</li>
* <li>The total number of available columns is 256 (2^8)</li>
* <li>The maximum number of arguments to a function is 30</li>
* <li>Number of conditional format conditions on a cell is 3</li>
* <li>Number of cell styles is 4000</li>
* <li>Length of text cell contents is 32767</li>
* </ul>
*/EXCEL97(0x10000,0x0100,30,3,4000,32767),/**
* Excel2007
*
* <ul>
* <li>The total number of available rows is 1M (2^20)</li>
* <li>The total number of available columns is 16K (2^14)</li>
* <li>The maximum number of arguments to a function is 255</li>
* <li>Number of conditional format conditions on a cell is unlimited
* (actually limited by available memory in Excel)</li>
* <li>Number of cell styles is 64000</li>
* <li>Length of text cell contents is 32767</li>
* <ul>
*/EXCEL2007(0x100000,0x4000,255,Integer.MAX_VALUE,64000,32767);
解决异常 在导出或者在程序启动时修改 Length of text cell contents is 32767 参数,可以在每次导出时手动去修改,也可以在项目启动后实现CommandLineRunner 逻辑修改掉,这样的话每次在导出时就不需要手动进行修改。 这里展示在程序启动后统一修改