From ae99ac8436d476f112d0d4328299d8220eaeb3a8 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 16 十二月 2025 15:10:03 +0800
Subject: [PATCH] 【丽水】随访统计导出调整
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 64 +++++++++++++++++++++++++++++--
1 files changed, 59 insertions(+), 5 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index b37fc98..ac4dd92 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -1,14 +1,11 @@
package com.ruoyi.common.utils.poi;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
+import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -23,8 +20,10 @@
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.ruoyi.common.utils.ServletUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -445,6 +444,22 @@
response.setCharacterEncoding("utf-8");
this.init(list, sheetName, title, Type.EXPORT);
exportExcel(response);
+ }
+
+ /**
+ * 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟锛堝甫鏂囦欢鍚嶏級
+ *
+ * @param response 杩斿洖鏁版嵁
+ * @param list 瀵煎嚭鏁版嵁闆嗗悎
+ * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О
+ * @param fileName 瀵煎嚭鏂囦欢鐨勫悕绉�
+ * @return 缁撴灉
+ */
+ public void exportExcelWithFileName(HttpServletResponse response, List<T> list, String sheetName, String fileName) {
+ //璁剧疆鏂囦欢鍚�
+ HttpServletRequest request = ServletUtils.getRequest();
+ setExcelFileName(response, request, fileName);
+ exportExcel(response, list, sheetName, StringUtils.EMPTY);
}
/**
@@ -1432,4 +1447,43 @@
}
return method;
}
+
+ /**
+ * 鍒ゆ柇鏄惁涓轰綆鐗堟湰娴忚鍣�
+ *
+ * @param request 娴忚鍣ㄨ姹傚ご
+ * @return
+ */
+ public static boolean isLowVersionBrowser(HttpServletRequest request) {
+ String userAgent = request.getHeader("User-Agent");
+ return userAgent.contains("msie")
+ || userAgent.contains("Trident")
+ || userAgent.contains("Edge");
+ }
+
+ /**
+ * 璁剧疆瀵煎嚭Excel鏂囦欢鍚嶇О
+ * @param response 杩斿洖鏁版嵁
+ * @param request 娴忚鍣ㄨ姹傚ご
+ * @param fileName 鏂囦欢鍚嶇О
+ */
+ public void setExcelFileName(HttpServletResponse response, HttpServletRequest request, String fileName) {
+ try {
+ //浼氭竻绌哄搷搴旂紦鍐插尯鐨勫唴瀹癸紝纭繚鍚庣画杈撳嚭涓嶄細鍙楀埌涔嬪墠鏁版嵁鐨勫奖鍝�
+ response.reset();
+ // 瀹氫箟娴忚鍣ㄥ搷搴旇〃澶达紝椤哄甫瀹氫箟涓嬭浇鍚�
+ if (isLowVersionBrowser(request)) {
+ fileName = URLEncoder.encode(fileName, "UTF8") + ".xlsx";
+ response.setHeader("Content-Disposition",
+ "attachment;filename=" + fileName);
+ } else {
+ response.setHeader("Content-Disposition",
+ "attachment;filename=" + new String((fileName + ".xlsx").getBytes("gb2312"), "ISO8859-1"));
+ }
+ // 瀹氫箟涓嬭浇鐨勭被鍨嬶紝鏍囨槑鏄痚xcel鏂囦欢
+ response.setContentType("application/vnd.ms-excel");
+ }catch (Exception e){
+ log.error("{}璁剧疆瀵煎嚭Excel鏂囦欢鍚嶇О寮傚父,{}", fileName, e.getMessage());
+ }
+ }
}
--
Gitblit v1.9.3