page contents

Hutool Java工具类库导出Excel,超级简单!

前言 在开发应用系统的时候,导出文件是必不可放的功能。 以前用过POI、easyexcel等工具的导入导出功能,但总感觉太麻烦了,代码特别多,感觉并不是很好用。 今天给大家介绍一款新工具,java...

前言

在开发应用系统的时候,导出文件是必不可放的功能。

以前用过POI、easyexcel等工具的导入导出功能,但总感觉太麻烦了,代码特别多,感觉并不是很好用。

今天给大家介绍一款新工具,java工具类库Hutool。

Hutool简介

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让使用者更轻松。

Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

使用

首先在POM.xml中加入GAV

<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>

然后在控制层使用就行

@RequestMapping( "/export" )

@ResponseBody

public void export( HttpServletResponse response )
{
    List<User> list = new ArrayList<>();

    list.addnew User( "zhangsan""1231"new Date() ) );

    list.addnew User( "zhangsan1""1232"new Date() ) );

    list.addnew User( "zhangsan2""1233"new Date() ) );

    list.addnew User( "zhangsan3""1234"new Date() ) );

    list.addnew User( "zhangsan4""1235"new Date() ) );

    list.addnew User( "zhangsan5""1236", DateUtil.date( new Date() ) ) );

/* 通过工具类创建writer,默认创建xls格式 */

    ExcelWriter writer = ExcelUtil.getWriter();

/* 自定义标题别名 */

    writer.addHeaderAlias( "name""姓名" );

    writer.addHeaderAlias( "age""年龄" );

    writer.addHeaderAlias( "birthDay""生日" );

/* 合并单元格后的标题行,使用默认标题样式 */

    writer.merge( 2"申请人员信息" );

/* 一次性写出内容,使用默认样式,强制输出标题 */

    writer.write( list, true );

/* out为OutputStream,需要写出到的目标流 */

/* response为HttpServletResponse对象 */

    response.setContentType( "application/vnd.ms-excel;charset=utf-8" );

/* test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 */

    String name = StringUtils.toUtf8String( "申请学院" );

    response.setHeader( "Content-Disposition""attachment;filename=" + name + ".xls" );

    ServletOutputStream out = null;

    try {
        out = response.getOutputStream();

        writer.flush( outtrue );
    } catch ( IOException e ) {
        e.printStackTrace();
    } finally {
/* 关闭writer,释放内存 */

        writer.close();
    }

/* 此处记得关闭输出Servlet流 */

    IoUtil.close( out );
}
  • 发表于 2020-03-09 13:36
  • 阅读 ( 1095 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章