网站首页 > 博客文章 正文
Hutool,A set of tools that keep Java sweet
近几年来,很多人吹捧hutool工具类库,github上star数目更是达到了惊人的18.2K,那为什么会受到大家的欢迎呢,工作中恰巧接触到一个excel的导入导出业务,使用hutool工具后真的爽得不行,今天在这里介绍给大家。
导入excel
敲代码前我们需要先去在pom文件加载一下hutool的依赖哦,我们项目中之前使用的poi版本是3.17,想要使用hutool工具类需要将poi的版本升至3.17,升级过程中还是有一些不愉快的,因为poi3.17是没有做到向下兼容的,下面是需要加的依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
那你们懂得,作为一名程序员,talk is cheap,下面我们直入主题,直接上代码
@PostMapping("/import")
private void test(MultipartFile file) throws RuhrCloudException {
ExcelReader reader;
try {
// 获取当前reader对象
reader = ExcelUtil.getReader(file.getInputStream());
// 装配alias,将你的对象和excel中字段匹配哦
assembleTableReader(reader);
// 读读读
List<Test> result = reader.readAll(Test.class);
log.info(result.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
private void assembleTableReader(ExcelReader reader) {
reader.addHeaderAlias("姓名", "name");
reader.addHeaderAlias("性别", "gender");
reader.addHeaderAlias("年龄", "age");
reader.addHeaderAlias("工作内容", "workContent");
}
excel中内容:
结果:
你看是不是很简单呢。我们再来看一下导出。
导出excel
上代码
@GetMapping("/export")
private void test(HttpServletResponse response) throws RuhrCloudException, IOException {
// 构建导出数据
List<Test> exportList = Lists.newArrayList();
exportList.add(Test.builder().name("小李").age(18).gender("男").workContent("敲代码").build());
exportList.add(Test.builder().name("小陈").age(18).gender("男").workContent("敲代码").build());
exportList.add(Test.builder().name("小蓝").age(18).gender("男").workContent("敲代码").build());
exportList.add(Test.builder().name("我").age(18).gender("nv").workContent("睡觉").build());
// 获取writer
ExcelWriter writer = ExcelUtil.getWriter();
// 装配writer alias
assembleSystemWriter(writer);
writer.write(exportList, true);
write(writer, response);
}
private ExcelWriter assembleSystemWriter(ExcelWriter writer) {
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("gender", "性别");
writer.addHeaderAlias("age", "年龄");
writer.addHeaderAlias("workContent", "工作内容");
return writer;
}
private void write(ExcelWriter writer, HttpServletResponse response) throws IOException {
// 一次性写出内容,使用默认样式,强制输出标题
// response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
// test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
// 此处记得关闭输出Servlet流
IoUtil.close(out);
}
导出结果:
可以自己调整样式哦,代码比较粗糙,只是当个demo让大家了解一下就好哈。
尾言
话话的今日头条今天开通咯,坚持原创,希望大家可以多多关注我,也可以私聊我探讨java人生,我是一名萌萌哒程序媛话话。
猜你喜欢
- 2024-09-09 jww基于springboot+dubbo分布式架构
- 2024-09-09 超实用的第三方开发工具库及开源项目
- 2024-09-09 基于springboot+dubbo分布式架构(spring boot+dubbo)
- 2024-09-09 软开企服开源的JVS开发套件(V2.1.3)产品说明书
- 2024-09-09 高效编程Hutool工具分析:Hutool设计方案与使用案例(第二部分)
- 2024-09-09 国内最火的几款Java开源项目(java最流行的开源软件)
- 2024-09-09 基于springboot+dubbo分布式架构jww
- 2024-09-09 只改了五行代码接口吞吐量提升了10多倍
- 2024-09-09 SpringBoot+Dubbo+Zookeeper+Redis+MQ分布式快速开发平台源码
- 2024-09-09 半个月收获接近 1k 的点赞!你需要的开源项目都在这里
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)