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 |   50 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 43 insertions(+), 7 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 218c782..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
@@ -20,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;
@@ -455,13 +457,8 @@
      */
     public void exportExcelWithFileName(HttpServletResponse response, List<T> list, String sheetName, String fileName) {
         //璁剧疆鏂囦欢鍚�
-        try {
-            fileName = URLEncoder.encode(fileName, "UTF8") + ".xls";
-            response.setHeader("Content-Disposition",
-                    "attachment;filename=" + fileName);
-        } catch (UnsupportedEncodingException e) {
-            throw new RuntimeException(e);
-        }
+        HttpServletRequest request = ServletUtils.getRequest();
+        setExcelFileName(response, request, fileName);
         exportExcel(response, list, sheetName, StringUtils.EMPTY);
     }
 
@@ -1450,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