From 09f75e1b4ee21241940ad26b91462ea15c5e4f00 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 03 七月 2026 09:25:29 +0800
Subject: [PATCH] 1.短信功能提交 2.优化随访详情页 3.导出两个sheet
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 96 insertions(+), 0 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 06e482e..f17faa3 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
@@ -442,6 +442,102 @@
}
/**
+ * 瀵煎嚭鍖呭惈涓や釜Sheet鐨凟xcel
+ * Sheet1: 鍩轰簬褰撳墠娉涘瀷绫诲瀷T鐨勬敞瑙e鍑�
+ * Sheet2: 鍩轰簬浼犲叆鐨刢lazz2绫诲瀷鐨勬敞瑙e鍑�
+ *
+ * @param response 杩斿洖鏁版嵁
+ * @param list1 绗竴涓猄heet鐨勬暟鎹泦鍚�
+ * @param sheetName1 绗竴涓猄heet鐨勫悕绉�
+ * @param list2 绗簩涓猄heet鐨勬暟鎹泦鍚�
+ * @param sheetName2 绗簩涓猄heet鐨勫悕绉�
+ * @param clazz2 绗簩涓猄heet鏁版嵁瀵硅薄鐨凜lass
+ */
+ public void exportExcelTwoSheet(HttpServletResponse response,
+ List<T> list1, String sheetName1,
+ List<?> list2, String sheetName2, Class<?> clazz2) {
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("utf-8");
+ // 鍒濆鍖栧苟鍐欏叆Sheet1
+ this.init(list1, sheetName1, StringUtils.EMPTY, Type.EXPORT);
+ writeSheet();
+ // 杩藉姞鍐欏叆Sheet2
+ writeAdditionalSheet(list2, sheetName2, clazz2);
+ // 杈撳嚭鍒板搷搴旀祦
+ try {
+ wb.write(response.getOutputStream());
+ } catch (Exception e) {
+ log.error("瀵煎嚭Excel寮傚父{}", e.getMessage());
+ } finally {
+ IOUtils.closeQuietly(wb);
+ }
+ }
+
+ /**
+ * 鍚戝綋鍓嶅伐浣滅翱杩藉姞鍐欏叆涓�涓猄heet
+ *
+ * @param dataList 鏁版嵁闆嗗悎
+ * @param sheetName Sheet鍚嶇О
+ * @param dataClazz 鏁版嵁瀵硅薄鐨凜lass
+ */
+ @SuppressWarnings("unchecked")
+ public void writeAdditionalSheet(List<?> dataList, String sheetName, Class<?> dataClazz) {
+ if (dataList == null) {
+ dataList = new ArrayList<>();
+ }
+ // 淇濆瓨鍘熷鐘舵��
+ Class<T> originClazz = this.clazz;
+ List<Object[]> originFields = this.fields;
+ List<T> originList = this.list;
+ String originSheetName = this.sheetName;
+ int originRownum = this.rownum;
+ List<Field> originSubFields = this.subFields;
+ Method originSubMethod = this.subMethod;
+ int originSubMergedFirstRowNum = this.subMergedFirstRowNum;
+ int originSubMergedLastRowNum = this.subMergedLastRowNum;
+ Map<Integer, Double> originStatistics = this.statistics;
+ short originMaxHeight = this.maxHeight;
+
+ // 璁剧疆鏂扮被鍨�
+ this.clazz = (Class<T>) dataClazz;
+ this.list = (List<T>) dataList;
+ this.sheetName = sheetName;
+ this.rownum = 0;
+ this.subFields = null;
+ this.subMethod = null;
+ this.subMergedFirstRowNum = 1;
+ this.subMergedLastRowNum = 0;
+ this.statistics = new HashMap<Integer, Double>();
+
+ // 鍒涘缓鏂癝heet
+ this.sheet = wb.createSheet();
+ wb.setSheetName(wb.getNumberOfSheets() - 1, sheetName);
+
+ // 閲嶆柊鍒涘缓瀛楁
+ createExcelField();
+
+ // 琛ュ厖鏂板瓧娈电殑鏍峰紡
+ this.styles.putAll(annotationHeaderStyles(wb, this.styles));
+ this.styles.putAll(annotationDataStyles(wb));
+
+ // 鍐欏叆鏁版嵁
+ writeSheet();
+
+ // 鎭㈠鍘熷鐘舵��
+ this.clazz = originClazz;
+ this.fields = originFields;
+ this.list = originList;
+ this.sheetName = originSheetName;
+ this.rownum = originRownum;
+ this.subFields = originSubFields;
+ this.subMethod = originSubMethod;
+ this.subMergedFirstRowNum = originSubMergedFirstRowNum;
+ this.subMergedLastRowNum = originSubMergedLastRowNum;
+ this.statistics = originStatistics;
+ this.maxHeight = originMaxHeight;
+ }
+
+ /**
* 瀵筶ist鏁版嵁婧愬皢鍏堕噷闈㈢殑鏁版嵁瀵煎叆鍒癳xcel琛ㄥ崟锛堝甫鏂囦欢鍚嶏級
*
* @param response 杩斿洖鏁版嵁
--
Gitblit v1.9.3