From 2a60c91efc7885aad16cae41f7a087e001480daa Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 23 十二月 2024 14:50:26 +0800
Subject: [PATCH] 更新至(22dcfc)

---
 cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java |  132 +++++++++++++++++++++----------------------
 1 files changed, 64 insertions(+), 68 deletions(-)

diff --git a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
index 1ce642a..7c9ca22 100644
--- a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
+++ b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
@@ -1,15 +1,12 @@
 package com.yuanchu.mom.service.impl;
 
-
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
-import com.alibaba.excel.metadata.data.ImageData;
-import com.alibaba.excel.metadata.data.WriteCellData;
 import com.alibaba.excel.util.FileUtils;
+import com.alibaba.excel.util.ListUtils;
 import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -22,14 +19,16 @@
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.utils.UserUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.List;
@@ -46,6 +45,7 @@
 
     /**
      * 鏂板鏍囧噯鏌ユ柊
+     *
      * @param processMethodSearchNewList
      * @return
      */
@@ -150,76 +150,72 @@
             index++;
 
         }
+        // 鏌ヨ绛惧悕鍦板潃
         String writeUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(writeUserId));
         String ratifyUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(ratifyUserId));
 
-        response.setContentType("application/vnd.ms-excel");
-        response.setCharacterEncoding("UTF-8");
+        //鍒涘缓ExcelWriter 鍙互鑷姩鍏虫祦浣嗚繕鏄墜鍔ㄥ叧涓�娆�
+        ExcelWriter excelWriter = null;
+
         try {
-            // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
-            String fileName = URLEncoder.encode("鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8");
-            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+            // outputStream锛氳瀵煎嚭鐨勬枃浠剁殑杈撳嚭娴�
+            OutputStream outputStream = response.getOutputStream();
+            // 鑾峰彇妯$増鏂囦欢
+            ClassPathResource classPathResource = new ClassPathResource("/static/excel/check-records.xlsx");
+            // 浣跨敤妯$増鏂囦欢鐨勪袱绉嶆柟寮忥細
+            // 	1銆佹枃浠惰矾寰勶細.withTemplate(templateFileName)
+            // 	2銆佽緭鍏ユ祦锛�.withTemplate(inputStream)
+            // String templateFileName = classPathResource.getFile().getPath();
+            InputStream inputStream = classPathResource.getInputStream();
+            // 鍒涘缓ExcelWriter
+            excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).build();
+            // 鑾峰彇绗竴涓猻heet椤�
+            WriteSheet writeSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").build();
+            //excelWriter.fill() 杩欏湴鏂瑰氨鏄~鍏呭睘鎬с��
+//            excelWriter.fill(methodSearchNews, fillConfig, writeSheet);
+            excelWriter.fill(methodSearchNews, writeSheet);
 
-            // 鍒涘缓 ExcelWriter
-            ServletOutputStream outputStream = response.getOutputStream();
-            ExcelWriter excelWriter = EasyExcel.write(outputStream).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+            // 杩欓噷easy excel妯℃澘瀵煎嚭闂 浼氬垹闄ゅ悗闈㈠唴瀹瑰啀杩涜杩涜濉厖
+            // 鎵�浠ist 鍚庨潰杩樻湁鏁版嵁 鎯冲姙娉曟墜鍔ㄥ啓鍏�
+            // 鎵嬪姩鍒涘缓涓�涓猯ist 瀛樻斁鏁版嵁 鐒跺悗鍐嶈繘琛屽~鍏�
+            // 杩欓噷List<Object>鍙互鐢ㄥ璞′唬鏇� 鍋锋噿鐢╨ist
+            List<List<Object>> totalListList = ListUtils.newArrayList();
+            List<Object> totalList = ListUtils.newArrayList();
+            totalListList.add(totalList);
+            // 绗竴鍒�
+            totalList.add("鏌ユ柊浜猴細");
+            // 绗簩鍒� 璁剧疆绛惧悕
+            totalList.add(FileUtils.readFileToByteArray(new File(writeUserUrl)));
+            // 绗笁鍒�
+            totalList.add("鏃ユ湡锛�");
+            // 绗簲鍒�
+            totalList.add("2024-12-23"); // 鏃ユ湡鍐欐
+            // 绗叚鍒�
+            totalList.add("瀹℃牳锛�");
+            // 绗竷鍒�
+            totalList.add(FileUtils.readFileToByteArray(new File(ratifyUserUrl)));
+            // 绗叓鍒�
+            totalList.add("鏃ユ湡锛�");
+            // 绗節鍒�
+            totalList.add("2024-12-23"); // 鏃ユ湡鍐欐
+            // 杩欓噷鏄痺rite 鍒拰fill 鎼為敊浜�
+            excelWriter.write(totalListList, writeSheet);
 
-            // 鑾峰彇 sheet0 瀵硅薄
-            WriteSheet mainSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").head(ProcessMethodSearchNewDto.class).build();
+            // 璁剧疆杈撳嚭娴佹牸寮忎互鍙婃枃浠跺悕锛�
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            String fileName = URLEncoder.encode(
+                    "鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8");
+            response.setHeader("Content-disposition",
+                    "attachment;filename=" + fileName + ".xlsx");
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            // 鍗冧竾鍒繕璁癱lose鍏抽棴娴�
+            if (excelWriter != null) {
+                excelWriter.close();
 
-            // 鍥剧墖瀵硅薄
-            ImageData imageData = new ImageData();
-            ImageData imageData1 = new ImageData();
-            // 璁剧疆鍥剧墖鏁版嵁
-            imageData.setImage(FileUtils.readFileToByteArray(new File(writeUserUrl))); // 璁剧疆缂栧埗浜哄浘鐗囩殑鏂囦欢璺緞
-            imageData1.setImage(FileUtils.readFileToByteArray(new File(ratifyUserUrl))); // 璁剧疆鎵瑰噯浜哄浘鐗囩殑鏂囦欢璺緞
-
-            // 璁剧疆缂栧埗浜哄浘鐗囦綅缃�
-            imageData.setRelativeFirstRowIndex(1);
-            imageData.setRelativeFirstColumnIndex(2);
-            imageData.setRelativeLastRowIndex(1);
-            imageData.setRelativeLastColumnIndex(2);
-            // 璁剧疆鎵瑰噯浜哄浘鐗囦綅缃�
-            imageData1.setRelativeFirstRowIndex(1);
-            imageData1.setRelativeFirstColumnIndex(4);
-            imageData1.setRelativeLastRowIndex(1);
-            imageData1.setRelativeLastColumnIndex(4);
-
-
-            List<ImageData> list = new ArrayList<>();
-            // 鏀惧叆鍒楄〃涓�
-            list.add(imageData);
-            list.add(imageData1);
-
-//            // 璁剧疆棰濆鐨勬枃瀛楋紙鍙�夛級
-//            WriteCellData<Void> writeCellData = new WriteCellData<>();
-////            imageDemoData.setWriteCellDataFile(writeCellData);
-//            // 杩欓噷鍙互璁剧疆涓� EMPTY 鍒欎唬琛ㄤ笉闇�瑕佸叾浠栨暟鎹簡
-//            writeCellData.setType(CellDataTypeEnum.STRING);
-//            writeCellData.setStringValue("棰濆鐨勬斁涓�浜涙枃瀛�");
-
-
-            // 灏嗗浘鐗囨暟鎹缃埌鍗曞厓鏍间腑
-            WriteCellData<ImageData> writeCellData = new WriteCellData<>();
-            writeCellData.setImageDataList(list);
-
-            // 鍒涘缓鏁版嵁鍒楄〃
-            List<List<WriteCellData>> dataList = new ArrayList<>();
-            List<WriteCellData> rowData = new ArrayList<>();
-            rowData.add(writeCellData); // 鎶婂浘鐗囨斁鍏ヤ竴琛�
-            dataList.add(rowData);
-
-
-            // 鍚� sheet0 鍐欏叆鏁版嵁锛堜紶鍏ョ┖list杩欐牱鍙鍑鸿〃澶达級
-            excelWriter.write(methodSearchNews, mainSheet);
-            // 鍐欏叆 鍥剧墖
-            excelWriter.write(dataList,mainSheet);
-
-            //鍏抽棴娴�
-            excelWriter.finish();
-
-        } catch (IOException e) {
-            throw new RuntimeException("瀵煎嚭澶辫触");
+            }
         }
     }
 

--
Gitblit v1.9.3