Excel导出和优化
Excel导出和优化
Excel导出一般使用Apache POI(Poor Obfuscation Implementation)
Excel Workbook
1. HSSFWorkbook
对应文件扩展名.xls,最大列数65535
2. XSSFWorkbook,列数不限
对应文件扩展名.xlsx
3. SXSSFWorkbook
Streaming version of XSSFWorkbook, XSSFWorkbook的优化版本,占用更小的内存,防止OOM
实现low memory footprint原理
详见http://poi.apache.org/spreadsheet/how-to.html#sxssf和BigGridDemo策略
会发现一个有趣的地方xlsx本质居然是zip文件
Word
XWPFDocument
代码用例
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-examples</artifactId>
</dependency>
Hutool下载Excel
ServletOutputStream out = response.getOutputStream();
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(getFileName(), "UTF-8") + ".xlsx");
List<String> header = CollUtil.newArrayList("column1", "column2");
ExcelWriter excelWriter = ExcelUtil.getWriter(true);
excelWriter.writeHeadRow(header);
excelWriter.write(getData());
excelWriter.flush(response.getOutputStream());
excelWriter.close();
out.flush();
超大Excel写入处理类
cn.hutool.poi.excel.ExcelUtil#getBigWriter(java.lang.String)
easy-poi导入导出
http://doc.autopoi.jeecg.com/1623978

浙公网安备 33010602011771号