From daea7f5c66346b74e9c1ae6b56e01540aee01e60 Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期四, 29 六月 2023 09:32:24 +0800 Subject: [PATCH] poi、easyexcel、poi-tl升级 ,合并空调中的报表、数据源模块 --- src/main/java/com/product/module/data/utli/Custemhandler.java | 101 +++++++++++++++++++++++++------------------------- src/main/java/com/product/module/data/service/SystemDataExportService.java | 5 ++ 2 files changed, 56 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/product/module/data/service/SystemDataExportService.java b/src/main/java/com/product/module/data/service/SystemDataExportService.java index f35abaa..b1de6a9 100644 --- a/src/main/java/com/product/module/data/service/SystemDataExportService.java +++ b/src/main/java/com/product/module/data/service/SystemDataExportService.java @@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.net.URLEncoder; import java.util.*; /** @@ -291,6 +292,10 @@ response.setContentType("multipart/form-data"); response.setCharacterEncoding("utf-8"); + //鍏佽璁块棶header涓殑鑷畾涔夊弬鏁� + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + //璁剧疆鏂囦欢鍚� + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(sheetName + System.currentTimeMillis() + ".xlsx", "UTF-8")); // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 // 杩欓噷闇�瑕佽缃笉鍏抽棴娴� try (ServletOutputStream outputStream = response.getOutputStream();) { diff --git a/src/main/java/com/product/module/data/utli/Custemhandler.java b/src/main/java/com/product/module/data/utli/Custemhandler.java index ca59987..d7fd02b 100644 --- a/src/main/java/com/product/module/data/utli/Custemhandler.java +++ b/src/main/java/com/product/module/data/utli/Custemhandler.java @@ -1,11 +1,12 @@ package com.product.module.data.utli; import com.alibaba.excel.enums.CellDataTypeEnum; -import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.Head; -import com.alibaba.excel.util.CollectionUtils; +import com.alibaba.excel.metadata.data.CellData; +import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; +import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.Cell; import java.util.HashMap; @@ -13,54 +14,54 @@ import java.util.Map; public class Custemhandler extends AbstractColumnWidthStyleStrategy { - private static final int MAX_COLUMN_WIDTH = 255; + private static final int MAX_COLUMN_WIDTH = 255; - private Map<Integer, Map<Integer, Integer>> cache = new HashMap<Integer, Map<Integer, Integer>>(8); + private Map<Integer, Map<Integer, Integer>> cache = new HashMap<Integer, Map<Integer, Integer>>(8); - @Override - protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, - Integer relativeRowIndex, Boolean isHead) { - boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList); - if (!needSetWidth) { - return; - } - Map<Integer, Integer> maxColumnWidthMap = cache.get(writeSheetHolder.getSheetNo()); - if (maxColumnWidthMap == null) { - maxColumnWidthMap = new HashMap<Integer, Integer>(16); - cache.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap); - } - Integer columnWidth = dataLength(cellDataList, cell, isHead); - if (columnWidth < 0) { - return; - } - if (columnWidth > MAX_COLUMN_WIDTH) { - columnWidth = MAX_COLUMN_WIDTH; - } - Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex()); - if (maxColumnWidth == null || columnWidth > maxColumnWidth) { - maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth); - writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); - } - } + @Override + protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, + Integer relativeRowIndex, Boolean isHead) { + boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList); + if (!needSetWidth) { + return; + } + Map<Integer, Integer> maxColumnWidthMap = cache.get(writeSheetHolder.getSheetNo()); + if (maxColumnWidthMap == null) { + maxColumnWidthMap = new HashMap<Integer, Integer>(16); + cache.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap); + } + Integer columnWidth = dataLength(cellDataList, cell, isHead); + if (columnWidth < 0) { + return; + } + if (columnWidth > MAX_COLUMN_WIDTH) { + columnWidth = MAX_COLUMN_WIDTH; + } + Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex()); + if (maxColumnWidth == null || columnWidth > maxColumnWidth) { + maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth); + writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); + } + } - private Integer dataLength(List<CellData> cellDataList, Cell cell, Boolean isHead) { - if (isHead) { - return cell.getStringCellValue().getBytes().length; - } - CellData cellData = cellDataList.get(0); - CellDataTypeEnum type = cellData.getType(); - if (type == null) { - return -1; - } - switch (type) { - case STRING: - return cellData.getStringValue().getBytes().length; - case BOOLEAN: - return cellData.getBooleanValue().toString().getBytes().length; - case NUMBER: - return cellData.getNumberValue().toString().getBytes().length; - default: - return -1; - } - } -} \ No newline at end of file + private Integer dataLength(List<WriteCellData<?>> cellDataList, Cell cell, Boolean isHead) { + if (isHead) { + return cell.getStringCellValue().getBytes().length; + } + CellData cellData = cellDataList.get(0); + CellDataTypeEnum type = cellData.getType(); + if (type == null) { + return -1; + } + switch (type) { + case STRING: + return cellData.getStringValue().getBytes().length; + case BOOLEAN: + return cellData.getBooleanValue().toString().getBytes().length; + case NUMBER: + return cellData.getNumberValue().toString().getBytes().length; + default: + return -1; + } + } +} -- Gitblit v1.9.2