問題:在項目中有個導出的需求,考慮到使用原生的poi來操作比較繁瑣,就用了現成的輪子。本來本地測試的時候是好好的,不過被測試多點了幾下后導出來的文件直接打開就報錯了,有的干脆就直接為0K.
所以抱着疑問去看了下源碼。
public class ExcelExportUtil
//導出的時候格式很重要 .xls對應 ExcelType.HSSF .xlsx對應 ExcelType.XSSF 默認ExportParams.type= ExcelType.HSSF
public static Workbook exportExcel(ExportParams entity, Class<?> pojoClass, Collection<?> dataSet) { Workbook workbook = getWorkbook(entity.getType(),dataSet.size()); new ExcelExportService().createSheet(workbook, entity, pojoClass, dataSet); return workbook; }
private static Workbook getWorkbook(ExcelType type, int size) { if (ExcelType.HSSF.equals(type)) { return new HSSFWorkbook(); } else if (size < 100000) { return new XSSFWorkbook(); } else { return new SXSSFWorkbook(); } }
結論:
導出的時候格式很重要 .xls對應 ExcelType.HSSF .xlsx對應 ExcelType.XSSF 默認ExportParams.type= ExcelType.HSSF
我就是因為沒有設置excel導出的格式 就把導出文件的后綴寫成了.xlsx,所以出現了導出文件打不開的情況,自己的拙見。