EasyPOI导出

模板方式导出

  1. 添加批注
	jx:area(lastCell="P3")
	jx:each(items="workTicketHighRiskList" var="work" lastCell="P3")

  1. 添加占位符
    ${work.enterpriseName}

类似这样
在这里插入图片描述

相关代码

//获取模板地址
        String templatesPath = "/templates/HighRiskSheetExportTemplate.xlsx";
        
InputStream inputStream = null;
        OutputStream outputStream;
        try {
            inputStream = this.getClass().getResourceAsStream(templatesPath);
            name = URLEncoder.encode(name, "UTF-8");
            response.setContentType("application/octet-stream;charset=utf-8");
            response.setHeader("Content-Disposition", "attachment; filename*=utf-8'zh_cn'" + name);
            response.resetBuffer();
            outputStream = response.getOutputStream();

			//获取导出数据集合
			List<AppWorkTicketHighRiskCountHyResult> resultList=new ArrayList();

			List<Map<String, Object>> workTicketHighRiskList = new ArrayList<>();
            for (AppWorkTicketHighRiskCountHyResult result : resultList) {
                Map<String, Object> workTicketHighRiskMap = new HashMap<>();
                workTicketHighRiskMap.put("enterpriseName", result.getEnterpriseName());
                workTicketHighRiskMap.put("workTicketValid", result.getWorkTicketValid());
                workTicketHighRiskMap.put("workTicketInvalid", result.getWorkTicketInvalid());
                workTicketHighRiskMap.put("workTicketCount", result.getWorkTicketCount());

                workTicketHighRiskList.add(workTicketHighRiskMap);
            }
            resultData.put("workTicketHighRiskList", workTicketHighRiskList);
            ExcelExportUtils.exportExcel(inputStream, outputStream, resultData);

        } catch (Exception e) {
            e.printStackTrace();
            logger.error("导出错误:" + e);
        }

注解方式导出

结果集实体上添加注解
@Excel(name = “xx”)

根据条件查询到要导出的结果集

//对应的要导出的数据列表
ArrayList<AppMajorHazardExcelExportVO> list = new ArrayList<>();

ExcelExportManage.exportExcel(list, null, "数据导出", AppMajorHazardExcelExportVO.class, "指定的导出的文件名称.xls", res);

ExcelExportManage 工具类

public class ExcelExportManage {
    private static final Logger log = LoggerFactory.getLogger(ExcelExportManage.class);

    public ExcelExportManage() {
    }

    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) {
        ExportParams exportParams = new ExportParams(title, sheetName);
        exportParams.setCreateHeadRows(isCreateHeader);
        defaultExport(list, pojoClass, fileName, response, exportParams);
    }

    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response) {
        defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
    }

    public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
        defaultExport(list, fileName, response);
    }

    public static void exportBigExcel(Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
        ExportParams exportParams = new ExportParams();
        defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
    }

    public static void exportBigExcel(ExportParams exportParams, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
        defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
    }

    public static void exportBigExcel(String title, String sheetName, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
        ExportParams exportParams = new ExportParams(title, sheetName);
        defaultBigExport(exportParams, pojoClass, fileName, iExcelExportServer, queryParams, response);
    }

    private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {
        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
        if (workbook != null) {
        }

        downLoadExcel(fileName, response, workbook);
    }

    private static void defaultBigExport(ExportParams exportParams, Class<?> pojoClass, String fileName, IExcelExportServer iExcelExportServer, Object queryParams, HttpServletResponse response) {
        Workbook workbook = ExcelExportUtil.exportBigExcel(exportParams, pojoClass, iExcelExportServer, queryParams);
        if (workbook != null) {
        }

        downLoadExcel(fileName, response, workbook);
    }

    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
        try {
            response.setCharacterEncoding("UTF-8");
            response.setHeader("content-Type", "application/vnd.ms-excel");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
            workbook.write(response.getOutputStream());
        } catch (IOException var4) {
            log.error("导出失败!{}", var4.getMessage());
        }

    }

    private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
        Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
        if (workbook != null) {
        }

        downLoadExcel(fileName, response, workbook);
    }

    public static SXSSFWorkbook getSXSSFWorkbookAssets(String sheetName, String[] titles, int[] columnLength, int[] columnHidden, String[] names, CellRangeAddressList rangeAddressList, CellRangeAddressList rangeAddressListNumber) {
        SXSSFWorkbook workbook = new SXSSFWorkbook();
        CellStyle cellStyleTitle = workbook.createCellStyle();
        cellStyleTitle.setBorderBottom(BorderStyle.THIN);
        cellStyleTitle.setBorderLeft(BorderStyle.THIN);
        cellStyleTitle.setBorderTop(BorderStyle.THIN);
        cellStyleTitle.setBorderRight(BorderStyle.THIN);
        cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);
        cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);
        Font fontTitle = workbook.createFont();
        fontTitle.setFontName("宋体");
        fontTitle.setFontHeightInPoints((short)12);
        fontTitle.setBold(true);
        cellStyleTitle.setFont(fontTitle);
        cellStyleTitle.setWrapText(true);
        Sheet sheet = workbook.createSheet(sheetName);
        DataValidationHelper helper;
        DataValidationConstraint numericConstraint;
        if (names != null && rangeAddressList != null) {
            helper = sheet.getDataValidationHelper();
            numericConstraint = helper.createExplicitListConstraint(names);
            DataValidation dataValidation = helper.createValidation(numericConstraint, rangeAddressList);
            if (dataValidation instanceof XSSFDataValidation) {
                dataValidation.setSuppressDropDownArrow(true);
                dataValidation.setShowErrorBox(true);
            } else {
                dataValidation.setSuppressDropDownArrow(false);
            }

            sheet.addValidationData(dataValidation);
        }

        if (rangeAddressListNumber != null) {
            helper = sheet.getDataValidationHelper();
            numericConstraint = helper.createNumericConstraint(2, 0, "0", "2000000");
            CellRangeAddressList regions = new CellRangeAddressList(1, 2000, 22, 25);
            DataValidation dataValidation = helper.createValidation(numericConstraint, regions);
            if (dataValidation instanceof XSSFDataValidation) {
                dataValidation.setSuppressDropDownArrow(true);
                dataValidation.setShowErrorBox(true);
            } else {
                dataValidation.setSuppressDropDownArrow(false);
            }

            sheet.addValidationData(dataValidation);
        }

        int i;
        if (columnHidden != null) {
            for(i = 0; i < columnHidden.length; ++i) {
                sheet.setColumnHidden(columnHidden[i], true);
            }
        }

        if (columnLength != null) {
            for(i = 0; i < columnLength.length; ++i) {
                sheet.setColumnWidth(i, columnLength[i]);
            }
        }

        Row row = sheet.createRow(0);

        for(int i = 0; titles != null && i < titles.length; ++i) {
            Cell cell = row.createCell(i);
            cell.setCellValue(titles[i]);
            cell.setCellStyle(cellStyleTitle);
        }

        CellStyle cellStyleBody = workbook.createCellStyle();
        cellStyleBody.cloneStyleFrom(cellStyleTitle);
        Font fontBody = workbook.createFont();
        fontBody.setFontName("宋体");
        fontBody.setFontHeightInPoints((short)10);
        cellStyleBody.setFont(fontBody);
        return workbook;
    }

    public static void writeExceleByPOI(SXSSFWorkbook sxssfWorkbook, OutputStream out) {
        try {
            sxssfWorkbook.write(out);
            out.flush();
        } catch (IOException var11) {
            log.error("系统异常:", var11);
        } finally {
            try {
                if (out != null) {
                    out.close();
                }

                sxssfWorkbook.dispose();
            } catch (IOException var10) {
                log.error("系统异常:", var10);
            }

        }

    }
}

然后导出即可

相关依赖

 <!--easypoi-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.0</version>
        </dependency>
        <!-- poi4.1.0 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.0</version>
        </dependency>
        <!-- 使用模板excel导出功能 -->
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls-poi</artifactId>
            <version>1.0.12</version>
        </dependency>
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls-jexcel</artifactId>
            <version>1.0.9</version>
        </dependency>
        <!-- 大数据excel导出功能 -->
        <dependency>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>stringtemplate</artifactId>
            <version>3.2.1</version>
        </dependency>
        <!--pdf生成工具类-->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf.tool</groupId>
            <artifactId>xmlworker</artifactId>
            <version>5.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>flying-saucer-pdf</artifactId>
            <version>9.0.3</version>
        </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值