使用hutool工具进行导出数据操作

首先,引入依赖,这里注意,如果没引进版本号可能出错

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

在controller中使用

导入的包是

import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;

代码为

//使用hutool实现导出
    @GetMapping("/export")
    public void export(HttpServletResponse response)throws Exception{
        //获取数据库信息,这里也可以使用wrapper进行条件查询
        List<User> list = userService.list();

        //获取到hutool的对象,以便进行操作
        ExcelWriter writer = ExcelUtil.getWriter(true);
        //自定义标题别名
        writer.addHeaderAlias("username", "用户名");
        writer.addHeaderAlias("password", "密码");
        writer.addHeaderAlias("nickname", "昵称");
        writer.addHeaderAlias("email", "邮箱");
        writer.addHeaderAlias("phone", "电话");
        writer.addHeaderAlias("address", "地址");
        writer.addHeaderAlias("createTime", "创建时间");
        writer.addHeaderAlias("uid", "识别符");
        writer.addHeaderAlias("deleted", "是否逻辑删除");

        //将list中的数据放到writer对象中
        writer.write(list);

        // 设置浏览器响应的格式,不需要修改
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("用户信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
        //获取到response的输出流,并把数据刷出去
        ServletOutputStream out = response.getOutputStream();
        writer.flush(out);
        //关闭流
        out.close();
        writer.close();


    }

其中

HttpServletResponse response为响应对象,通过他调用
getOutputStream()方法将数据输出出去

这一块代码为设置格式,不需要修改

// 设置浏览器响应的格式,不需要修改
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("用户信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值