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