java hutool工具类实现将数据下载到excel

通过hutool工具类,对于excel的操作变得非常简单,上篇介绍的是excel的上传,对excel的操作,核心代码只有一行。本篇的excel的下载,核心数据也不超过两行,简洁方便,特别适合当下的低代码操作。
下载excel,有两种方式,一种将生成的excel下载到指定路径,一种是在web页面中直接下载到默认的download路径。
第一种:

ExcelWriter writer = ExcelUtil.getWriter("D:/myfile/" + new String("班级人员表.".getBytes(StandardCharsets.UTF_8)));

第二种:

ExcelWriter writer = ExcelUtil.getWriter();
write.flush(outputStream, isCloseOut);

使用步骤及代码示例如下:

引入jar包

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

第一种指定路径下载的方式代码实现如下:

public class CreateExcelDemo{
	public void createExcel() {
		/**
		 * 第一部分,组装数据
		 */
		// classList 就是输入到excel的数据集合
		List<Map<String, String>> classList = new ArrayList<>();
		// map的key 是表头,value是表头对应的值
		Map<String, String> map = new LinkedHashMap<>();
		map.put("班级名称", "计算机一班");// 第一列
		map.put("班级人数", "45");// 第二列
		map.put("班主任", "王老师");
		classList.add(map);
		
		/**
		 * 第二部分,指定路径和excel文件名称,将数据放入excel
		 */
		 // 设置UTF-8,是为了防止在Linux中,中文名称出现乱码
		ExcelWriter writer = ExcelUtil.getWriter("D:/myfile/" + new String("班级人员表.xlsx".getBytes(StandardCharsets.UTF_8)))
		        .renameSheet("班级名称") //设置sheet名称,默认是第一个sheet 
                .setColumnWidth(-1, 20)  // 设置列宽度为20,-1表示针对所有列
                .write(classList, true); // 将List数据写入到excel表,true表示设置标题行
        writer.close(); // 写完记得关闭
	}
}

结果如下:
在这里插入图片描述

在这里插入图片描述

第二种是在web页面中下载,即直接通过浏览器下载,代码如下:

public class CreateExcelDemo {

    public static void createExcel(HttpServletResponse response) {
        /**
         * 第一部分,组装数据
         */
        // classList 就是输入到excel的数据集合
        List<Map<String, String>> classList = new ArrayList<>();
        // map的key 是表头,value是表头对应的值
        Map<String, String> map = new LinkedHashMap<>();
        map.put("班级名称", "计算机一班");// 第一列
        map.put("班级人数", "45");// 第二列
        map.put("班主任", "王老师");
        classList.add(map);

        /**
         * 第二部分,通过流输出到文件
         */
        OutputStream out = null;
        try (ExcelWriter writer = ExcelUtil.getWriter()) {
            writer.write(classList, true);// 写入数据
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("班级人员表.xlsx", "UTF-8"));
            out = response.getOutputStream();// 获取流
            writer.flush(out, true); // 将数据流输出到文件
        } catch (IOException e) {
            e.printStackTrace();
        }
        IoUtil.close(out);// 流的操作要关闭
    }

结果如下:
在这里插入图片描述

在这里插入图片描述

excel的操作是很方便的,其他设置可以查看源码,源码都是中文注释,很清晰。

excel表上传请看上一篇:java hutool工具实现excel的上传 支持office03和07

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Hutool是一个Java工具类库,其中包含了许多实用的工具类,其中就包括导出Excel工具类HutoolExcel工具类可以方便地将Java对象导出为Excel文件,支持多种Excel格式,同时也支持自定义Excel样式。使用HutoolExcel工具类,可以大大简化Java开发者的Excel导出工作。 ### 回答2: Hutool是一个Java工具类库,其中包括多个实用工具类,包括导出Excel功能。Hutool导出Excel工具类使用方便,提供丰富的API,可以满足大部分的导出需求。 Hutool导出Excel工具类支持多种导出方式,如导出到本地文件、导出到输出流、导出到HTTP响应等,方便不同场景下的使用。同时,Hutool导出Excel工具类支持导出自定义样式的Excel文档,可以按照自己的需求设置样式。 使用Hutool导出Excel工具类只需要引入相关的依赖即可,具体使用步骤如下: 1.添加依赖 在Maven项目中,需要在pom.xml文件中添加如下依赖: ``` <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>x.x.x</version> </dependency> ``` 其中x.x.x为Hutool的版本号,根据自己的需求选择。 2.构建Excel数据 使用Hutool导出Excel工具类需要先构建Excel文档中的数据,可以通过读取数据库或其他方式获取数据,并将数据封装为List或其他集合形式。 3.导出Excel文档 Hutool导出Excel工具类的API非常丰富,可以根据自己的需求选择不同的导出方式和样式。下面是一个基本的导出Excel文档的例子: ``` //构建Excel数据 List<User> userList = userService.getAllUsers(); //设置导出Excel文件名 String fileName = "用户列表.xlsx"; //设置导出Excel表格的表头 String[] headers = {"ID", "用户名", "邮箱"}; //设置导出Excel表格的数据 List<String[]> data = new ArrayList<>(); for (User user : userList) { String[] row = {String.valueOf(user.getId()), user.getUsername(), user.getEmail()}; data.add(row); } //导出Excel文档到本地文件 ExcelUtil.exportExcel(fileName, headers, data); ``` 以上代码中,首先通过userService.getAllUsers()方法获取用户列表数据,然后设置导出Excel文件名、表头和数据,最后调用ExcelUtil.exportExcel()方法导出Excel文档到本地文件。 总之,Hutool导出Excel工具类提供了方便、灵活的API,可以快速地完成Excel的导出功能。该工具类的使用非常简单,只需要几行代码即可完成整个导出过程。在处理Excel导出的场景下,Hutool是一个非常值得推荐的Java工具类库。 ### 回答3: Hutool是一款Java工具类库,其中包含了丰富的工具类以及函数库,实现了诸多常用的功能。Hutool的特点是轻量级、使用简单、性能高效、功能强大,是很多Java开发者常用的工具。 其中,HutoolExcel模块中封装了导出Excel的功能,实现了轻松生成Excel文件的功能。使用Hutool导出Excel的步骤非常简单,首先我们需要创建ExcelWriter对象,调用write方法,写入数据,然后调用flush方法,将数据写入到Excel文件中,最后关闭ExcelWriter对象,释放资源。 在创建ExcelWriter对象时,我们需要指定输出流以及Excel文件格式。对于输出流,我们可以使用OutputStream,也可以直接指定输出文件路径。对于Excel格式,Hutool支持多种格式,如xls、xlsx、ods等。 在调用write方法时,我们可以使用不同的参数类型,如List、Map、Collection等来传递数据源,或者手动指定列名称、列类型、列宽、样式等信息。此外,Hutool还提供了一些方便的方法,如自适应列宽、数据类型转换等,使得数据导出更加灵活便捷。 总之,Hutool是一款十分实用的Java工具类库,其Excel模块的导出功能便捷、易用、高效,为Java开发者提供了很多便利。对于需要进行数据导出的项目,使用Hutool可以更加快速、高效地实现数据导出,并提高开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值