解决用EasyExcel导出文件时,提示“The maximum length of cell contents (text) is 32,767 characters”的方法。
问题
解决
利用反射强制将EXCEL2007中的_maxTextLength属性值修改为Integer.MAX_VALUE
public static void resetCellMaxTextLength() {
SpreadsheetVersion excel2007 = SpreadsheetVersion.EXCEL2007;
if (Integer.MAX_VALUE != excel2007.getMaxTextLength()) {
Field field;
try {
field = excel2007.getClass().getDeclaredField("_maxTextLength");
field.setAccessible(true);
field.set(excel2007,Integer.MAX_VALUE);
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用
在EasyExcel调用之前执行即可
ExcelTool.resetCellMaxTextLength();
EasyExcel.write(getAbsoluteFile(filename), clazz).sheet(sheetName).doWrite(list);