EasyPOI(四)导入、注解导出、模板导出

EasyPOI 是一款开源的基于Java语言的Excel操作工具

1.导入Excel

    /**
     * 导入Excel
     */
    public List<User> importExcel(MultipartFile file) throws Exception {
        // 导入
        ImportParams params = new ImportParams();
        params.setTitleRows(1);
        params.setHeadRows(1);
        return ExcelImportUtil.importExcel(file.getInputStream(), User.class, params);
    }

导入文件:

导入结果:

2.简单导出Excel

    /**
     * 注解导出
     */
    public void exportExcel(HttpServletResponse response) throws IOException {
        // 导出
        response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
        response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("用户-导出.xls", "utf-8"));
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户数据", "sheet1"), User.class, list);
        workbook.write(response.getOutputStream());
    }

导出结果:

3.模板导出Excel

    /**
     * 模板导出
     */
    public void exportByTemplate(HttpServletResponse response) throws IOException {
        // 模板导出
        String templatePath = "/excel/export-template.xlsx";
        InputStream templateInputStream = this.getClass().getResourceAsStream(templatePath);
        // HSSFWorkbook 扩展名xls XSSFWorkbook 扩展名xlsx
        Workbook templateWorkbook = new XSSFWorkbook(templateInputStream);
        TemplateExportParams params = new TemplateExportParams("用户数据", 1);
        params.setTemplateWb(templateWorkbook);
        Map<String, Object> map = new HashMap<>();
        map.put("list", list);

        response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
        response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("用户-模板导出.xls", "utf-8"));
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        workbook.write(response.getOutputStream());
    }

文件位置:

模板文件:

导出结果:

源码地址

https://github.com/ACGkaka/SpringBootExamples/tree/main/springboot-easypoi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不愿放下技术的小赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值