From 34396de03a38fbda0caa8f4afcc55fdae4c9b4e7 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 31 五月 2022 13:37:16 +0800
Subject: [PATCH] update 优化 ExcelUtil 工具支持合并处理器
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 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 78d5915..a45fc2d 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
@@ -2,8 +2,10 @@
import cn.hutool.core.util.IdUtil;
import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.ruoyi.common.convert.ExcelBigNumberConvert;
+import com.ruoyi.common.excel.CellMergeStrategy;
import com.ruoyi.common.excel.DefaultExcelListener;
import com.ruoyi.common.excel.ExcelListener;
import com.ruoyi.common.excel.ExcelResult;
@@ -69,22 +71,41 @@
*
* @param list 瀵煎嚭鏁版嵁闆嗗悎
* @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О
- * @return 缁撴灉
+ * @param clazz 瀹炰綋绫�
+ * @param response 鍝嶅簲浣�
*/
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response) {
+ exportExcel(list, sheetName, clazz, false, response);
+ }
+
+ /**
+ * 瀵煎嚭excel
+ *
+ * @param list 瀵煎嚭鏁版嵁闆嗗悎
+ * @param sheetName 宸ヤ綔琛ㄧ殑鍚嶇О
+ * @param clazz 瀹炰綋绫�
+ * @param merge 鏄惁鍚堝苟鍗曞厓鏍�
+ * @param response 鍝嶅簲浣�
+ */
+ public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge, HttpServletResponse response) {
try {
String filename = encodingFilename(sheetName);
response.reset();
FileUtils.setAttachmentResponseHeader(response, filename);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
ServletOutputStream os = response.getOutputStream();
- EasyExcel.write(os, clazz)
+ ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz)
.autoCloseStream(false)
// 鑷姩閫傞厤
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// 澶ф暟鍊艰嚜鍔ㄨ浆鎹� 闃叉澶辩湡
.registerConverter(new ExcelBigNumberConvert())
- .sheet(sheetName).doWrite(list);
+ .sheet(sheetName);
+ if (merge) {
+ // 鍚堝苟澶勭悊鍣�
+ builder.registerWriteHandler(new CellMergeStrategy(list, true));
+ }
+ builder.doWrite(list);
} catch (IOException e) {
throw new RuntimeException("瀵煎嚭Excel寮傚父");
}
--
Gitblit v1.9.3