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