From 0df708970a2c4ad81af90bd855945734422b7056 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 27 Feb 2025 17:58:54 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A1=E6=A3=80-?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E9=97=AE=E9=A2=98=E5=AF=BC=E5=87=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1365994327474176]巡检-最新问题导出异常 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1365994327474176 --- .../InspectNewProblemReportExportApi.java | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/src/main/java/neatlogic/module/inspect/api/newproblem/InspectNewProblemReportExportApi.java b/src/main/java/neatlogic/module/inspect/api/newproblem/InspectNewProblemReportExportApi.java index 72c4e5b..d144b59 100644 --- a/src/main/java/neatlogic/module/inspect/api/newproblem/InspectNewProblemReportExportApi.java +++ b/src/main/java/neatlogic/module/inspect/api/newproblem/InspectNewProblemReportExportApi.java @@ -1,5 +1,7 @@ package neatlogic.module.inspect.api.newproblem; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.cmdb.crossover.ICiCrossoverMapper; import neatlogic.framework.cmdb.crossover.IResourceCrossoverMapper; @@ -15,10 +17,13 @@ import neatlogic.framework.inspect.auth.INSPECT_BASE; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateBinaryStreamApiComponentBase; +import neatlogic.framework.util.FileUtil; +import neatlogic.framework.util.excel.ExcelBuilder; +import neatlogic.framework.util.excel.SheetBuilder; import neatlogic.module.inspect.service.InspectReportService; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -28,8 +33,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; /** * @author longrf @@ -113,20 +118,28 @@ public class InspectNewProblemReportExportApi extends PrivateBinaryStreamApiComp } else { throw new ParamNotExistsException("typeId", "appSystemId"); } - if (workbook != null) { - boolean flag = request.getHeader("User-Agent").indexOf("Gecko") > 0; - if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") > 0 || flag) { - fileNameEncode = URLEncoder.encode(fileNameEncode, "UTF-8");// IE浏览器 - } else { - fileNameEncode = new String(fileNameEncode.replace(" ", "").getBytes(StandardCharsets.UTF_8), "ISO8859-1"); - } - response.setContentType("application/vnd.ms-excel;charset=utf-8"); - response.setHeader("Content-Disposition", " attachment; filename=\"" + fileNameEncode + "\""); - try (OutputStream os = response.getOutputStream()) { - workbook.write(os); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } + if (workbook == null) { + List headerList = new ArrayList<>(); + List columnList = new ArrayList<>(); +// buildHeaderListAndColumnList(headerList, columnList, isNeedAlertDetail); + + ExcelBuilder builder = new ExcelBuilder(SXSSFWorkbook.class); + SheetBuilder sheetBuilder = builder.withBorderColor(HSSFColor.HSSFColorPredefined.GREY_40_PERCENT) + .withHeadFontColor(HSSFColor.HSSFColorPredefined.WHITE) + .withHeadBgColor(HSSFColor.HSSFColorPredefined.DARK_BLUE) + .withColumnWidth(30) + .addSheet("数据") + .withHeaderList(headerList) + .withColumnList(columnList); + workbook = builder.build(); + } + fileNameEncode = FileUtil.getEncodedFileName(fileNameEncode); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", " attachment; filename=\"" + fileNameEncode + "\""); + try (OutputStream os = response.getOutputStream()) { + workbook.write(os); + } catch (IOException e) { + logger.error(e.getMessage(), e); } return null; } -- Gitee