From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/util/ExcelUtils.java | 31 ++++++++++++++++++++++--------- 1 files changed, 22 insertions(+), 9 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..f739039 100644 --- a/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java +++ b/src/main/java/com/nanometer/smartlab/util/ExcelUtils.java @@ -3,23 +3,35 @@ 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.ss.usermodel.Workbook; +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 { + static { + System.setProperty("java.awt.headless", "false"); + } + public static HSSFWorkbook exportExcelNew(Map<String, String> map, List<Map> dataList, String name){ - HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + // SXSSFWorkbook sb = new SXSSFWorkbook(1000); Integer total = null; //sheet名字 - HSSFSheet sheet = hssfWorkbook.createSheet(name); +// SXSSFSheet sheet = sb.createSheet(name); +// SXSSFRow titlerRow = sheet.createRow(0); + HSSFWorkbook sb = new HSSFWorkbook(); + HSSFSheet sheet = sb.createSheet(name); HSSFRow titlerRow = sheet.createRow(0); int k = 0; @@ -30,6 +42,7 @@ } //数据 for (int i = 0; i < dataList.size(); i++) { + // SXSSFRow dataRow = sheet.createRow(i + 1); HSSFRow dataRow = sheet.createRow(i + 1); int j = 0; for(Map.Entry<String, String> entry:map.entrySet()){ @@ -41,7 +54,7 @@ - return hssfWorkbook; + return sb; } @@ -50,7 +63,7 @@ throw new Exception("没有数据可以导出"); } - ServletOutputStream out = null; + OutputStream out = null; InputStream is = null; try { FacesContext ctx = FacesContext.getCurrentInstance(); @@ -62,18 +75,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(); + Workbook 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