From a7dab252ef7668fe8a327edf6838ba91c859d4e1 Mon Sep 17 00:00:00 2001
From: caozehui <2427765068@qq.com>
Date: Tue, 5 Nov 2024 10:08:44 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=87=BA=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
njcn-common/pom.xml | 18 ++++++
.../java/com/njcn/common/utils/ExcelUtil.java | 63 +++++++++++++++++++
2 files changed, 81 insertions(+)
create mode 100644 njcn-common/src/main/java/com/njcn/common/utils/ExcelUtil.java
diff --git a/njcn-common/pom.xml b/njcn-common/pom.xml
index d724b17..a3a3deb 100644
--- a/njcn-common/pom.xml
+++ b/njcn-common/pom.xml
@@ -26,6 +26,7 @@
2.17.0
1.7.32
1.2.12
+ 4.4.0
@@ -108,6 +109,23 @@
+
+
+ com.njcn
+ common-core
+ 1.0.0
+
+
+ com.njcn
+ common-web
+ 1.0.0
+
+
+ cn.afterturn
+ easypoi-spring-boot-starter
+ ${easypoi.version}
+
+
\ No newline at end of file
diff --git a/njcn-common/src/main/java/com/njcn/common/utils/ExcelUtil.java b/njcn-common/src/main/java/com/njcn/common/utils/ExcelUtil.java
new file mode 100644
index 0000000..3339506
--- /dev/null
+++ b/njcn-common/src/main/java/com/njcn/common/utils/ExcelUtil.java
@@ -0,0 +1,63 @@
+package com.njcn.common.utils;
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.hutool.core.util.CharsetUtil;
+import com.njcn.web.utils.HttpServletUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Workbook;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Collection;
+
+/**
+ * @author caozehui
+ * @version 1.0.0
+ * @date 2024年11月05日
+ */
+@Slf4j
+public class ExcelUtil {
+ /**
+ * 指定名称、数据下载报表
+ *
+ * @param fileName 文件名
+ */
+ public static void exportExcel(String fileName, Class> pojoClass, Collection> dataSet) {
+ HttpServletResponse response = HttpServletUtil.getResponse();
+ try (ServletOutputStream outputStream = response.getOutputStream()) {
+ fileName = URLEncoder.encode(fileName, CharsetUtil.UTF_8);
+ response.reset();
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
+ response.setContentType("application/octet-stream;charset=UTF-8");
+ ExportParams exportParams = new ExportParams();
+ Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, dataSet);
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ log.error(">>> 导出数据异常:{}", e.getMessage());
+ }
+ }
+
+ /**
+ * 指定名称、sheet名、数据下载报表
+ *
+ * @param fileName 文件名
+ */
+ public static void exportExcel(String fileName, String sheetName, Class> pojoClass, Collection> dataSet) {
+ HttpServletResponse response = HttpServletUtil.getResponse();
+ try (ServletOutputStream outputStream = response.getOutputStream()) {
+ fileName = URLEncoder.encode(fileName, CharsetUtil.UTF_8);
+ response.reset();
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
+ response.setContentType("application/octet-stream;charset=UTF-8");
+ ExportParams exportParams = new ExportParams();
+ exportParams.setSheetName(sheetName);
+ Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, dataSet);
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ log.error(">>> 导出数据异常:{}", e.getMessage());
+ }
+ }
+}