springboot整合easypoi实现浏览器自动下载自定义表头excel文件(二)

效果图:
在这里插入图片描述
1. 备注:
1.根据easypoi的原理导出excel文件
2.由效果图为例子,姓名、年龄、性别、地址可以自定义展示,思路:这些可以保存到数据库里面,然后获取某些信息进行输入colList(表头)
3.封装easypoi快速实现导出请点击springboot整合easypoi实现浏览器自动下载excel文件,一行代码实现,附带完整项目和导出工具。

2. 引入依赖

<!--excel导出工具-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi-ooxml</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi</artifactId>
                </exclusion>
            </exclusions>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.1</version>
        </dependency>

3. 主要代码

/**
     * 自定义导出excel
     * @param response
     * @throws Exception
     */
    @GetMapping("/export")
    public void export(HttpServletResponse response) throws IOException {
        //自定义表头
        List<ExcelExportEntity> colList = new ArrayList<ExcelExportEntity>();
        ExcelExportEntity colEntity = new ExcelExportEntity("姓名", "name");
        colList.add(colEntity);
        colEntity = new ExcelExportEntity("年龄", "age");
        colList.add(colEntity);
        colEntity = new ExcelExportEntity("性别", "gender");
        colList.add(colEntity);
        colEntity = new ExcelExportEntity("地址", "address");
        colList.add(colEntity);
        //数据
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Map<String, Object> valMap1 = new HashMap<String, Object>();
        valMap1.put("name","燕双鹰");
        valMap1.put("age", "28");
        valMap1.put("gender", "男");
        valMap1.put("address", "抗日大道");
        list.add(valMap1);
        Map<String, Object> valMap2 = new HashMap<String, Object>();
        valMap2.put("name","花木兰");
        valMap2.put("age", "18");
        valMap2.put("gender", "女");
        valMap2.put("address", "东市购物街");
        list.add(valMap2);
        Map<String, Object> valMap3 = new HashMap<String, Object>();
        valMap3.put("name","梁志超他奶");
        valMap3.put("age", "88");
        valMap3.put("gender", "女");
        valMap3.put("address", "梁志超家");
        list.add(valMap3);
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("价格分析表", "数据"), colList,
                list);
        downLoadExcel("用户信息", response, workbook);
    }
    /**
     * excel下载
     *
     * @param fileName 下载时的文件名称
     * @param response
     * @param workbook excel数据
     */
    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws IOException {
        try {
            System.out.println("下载时的文件名称" + fileName);
            response.setCharacterEncoding("UTF-8");
            response.setHeader("content-Type", "application/vnd.ms-excel");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));
            workbook.write(response.getOutputStream());
        } catch (Exception e) {
            throw new IOException(e.getMessage());
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

XuDream

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

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

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

打赏作者

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

抵扣说明:

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

余额充值