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
posted @ 2021-05-25 21:30  doite  阅读(193)  评论(0)    收藏  举报