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()); + } + } +}