From e997eee6b747c343e432783111371aca0bd89306 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期二, 29 六月 2021 13:15:24 +0800 Subject: [PATCH] 导出试剂 --- src/main/java/com/nanometer/smartlab/util/ExcelUtils.java | 28 ++++++++++++++++------------ 1 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java b/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java index ba95396..4ba663e 100644 --- a/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java +++ b/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java @@ -3,24 +3,28 @@ import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.xssf.streaming.SXSSFRow; +import org.apache.poi.xssf.streaming.SXSSFSheet; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; import javax.faces.context.FacesContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class ExcelUtils { - public static HSSFWorkbook exportExcelNew(Map<String, String> map, List<Map> dataList, String name){ - HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + public static SXSSFWorkbook exportExcelNew(Map<String, String> map, List<Map> dataList, String name){ + SXSSFWorkbook sb = new SXSSFWorkbook(1000); Integer total = null; //sheet名字 - HSSFSheet sheet = hssfWorkbook.createSheet(name); - HSSFRow titlerRow = sheet.createRow(0); + SXSSFSheet sheet = sb.createSheet(name); + SXSSFRow titlerRow = sheet.createRow(0); int k = 0; for(Map.Entry<String, String> entry:map.entrySet()){ @@ -30,7 +34,7 @@ } //数据 for (int i = 0; i < dataList.size(); i++) { - HSSFRow dataRow = sheet.createRow(i + 1); + SXSSFRow dataRow = sheet.createRow(i + 1); int j = 0; for(Map.Entry<String, String> entry:map.entrySet()){ //表头 @@ -41,7 +45,7 @@ - return hssfWorkbook; + return sb; } @@ -50,7 +54,7 @@ throw new Exception("没有数据可以导出"); } - ServletOutputStream out = null; + OutputStream out = null; InputStream is = null; try { FacesContext ctx = FacesContext.getCurrentInstance(); @@ -62,18 +66,18 @@ StringBuffer contentDisposition = new StringBuffer(); contentDisposition.append("attachment;"); contentDisposition.append("filename=\""); - contentDisposition.append(name).append(".xls"); + contentDisposition.append(name).append(".xlsx"); contentDisposition.append("\""); response.setHeader( "Content-Disposition", new String(contentDisposition.toString().getBytes( System.getProperty("file.encoding")), "ISO8859-1")); out = response.getOutputStream(); - HSSFWorkbook hssfWorkbook = ExcelUtils.exportExcelNew(map, list, name); - hssfWorkbook.write(out); -// out.flush(); + SXSSFWorkbook sb = ExcelUtils.exportExcelNew(map, list, name); + sb.write(out); + out.flush(); + sb.dispose();// 释放workbook所占用的所有windows资源 ctx.responseComplete(); - } catch (Exception e) { if (is != null) { try { -- Gitblit v1.9.2