Hutool导出页面数据?教你一招

通常在Java Web的项目中,我们会有导出数据的需求。因此,在这里我就通过一个简单的小Demo来演示一下如何通过Java的Hutool工具来将页面数据导出为excel。

1、Hutool工具介绍

Hutool是一个小而全的Java工具类库,它通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。Hutool涵盖了Java开发底层代码中的各个方面,是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

2、项目环境搭建

开发工具IntelliJ IDEA
框架Spring + Spreing MVC + MyBatis
数据库MySQL 5.6
前端Bootstrap 

3、Hutool的使用

Hutool的使用步骤主要分为以下几个步骤:

(1)在pom.xml中引入依赖包。

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.0.7</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.17</version>
</dependency>

(2)在控制层使用Hutool。

 @RequestMapping("/export")
    public void export(HttpServletResponse response) throws UnsupportedEncodingException {
        //从数据库中查询到数据
        List<User> userList = exportService.findAll();
        // 通过工具类创建writer,默认创建xls格式
        ExcelWriter writer = ExcelUtil.getWriter();
        //自定义标题别名
        writer.addHeaderAlias("id", "序号");
        writer.addHeaderAlias("username", "姓名");
        writer.addHeaderAlias("address", "地址");
        writer.addHeaderAlias("age", "年龄");
        // 合并单元格后的标题行,使用默认标题样式
        writer.merge(3, "人员信息");
        // 一次性写出内容,使用默认样式,强制输出标题
        writer.write(userList, true);
        //out为OutputStream,需要写出到的目标流
        //response为HttpServletResponse对象
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        //dateString.xls是弹出下载对话框的文件名,用日期作为文件名称
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        response.setHeader("Content-Disposition","attachment;filename="+dateString+".xls");
        ServletOutputStream out= null;
        try {
            out = response.getOutputStream();
            writer.flush(out, true);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            // 关闭writer,释放内存
            writer.close();
        }
        //此处记得关闭输出Servlet流
        IoUtil.close(out);
    }

4、效果演示

(1)启动项目,点击按钮,跳转到用户信息页面。

 (2)点击导出,下载文件。

 文件内容如下:

5、项目源码

 https://github.com/MyBestThought/ExportExcel

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值