MyExcel 3.7.0 发布,屏蔽多线程处理细节
MyExcel,是一个集导入、导出、加密Excel等多项功能的Java工具包。
MyExcel采用声明式语法来构建、读取Excel,屏蔽POI的具体操作细节(对POI无感知),以开发常用的技术替代,使得构建(从简单到高度复杂Excel)以及读取Excel变得极为便利,且构建、读取性能极为优异,占用内存极低(具体,请移步参考MyExcel&阿里EasyExcel性能对比)。
如导入:
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class)
.sheet(0) // 0代表第一个sheet,如果为0,可省略该操作,也可sheet("名称")读取
.rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行
.beanFilter(ArtCrowd::isDance) // bean过滤
.read(path.toFile());
本次为例行更新,具体更新如下:
- DefaultStreamExcelBuilder新增asyncAppend方法,屏蔽多线程使用细节;
- 优化FreemarkerTemplateHandler,增加对Java8时间类支持;
- 优化读取异常字段的信息;
屏蔽多线程使用细节(asyncAppend内部实现依然是多线程),在于降低异步导出门槛,方便Java初学者或多线程不熟悉的用户能够快速入手MyExcel流式导出,尽力减少用户每一行代码!!!
原流式导出方式:
try (DefaultStreamExcelBuilder<ArtCrowd> streamExcelBuilder = DefaultStreamExcelBuilder
.of(ArtCrowd.class)
.threadPool(Executors.newFixedThreadPool(10))
.start()) {
// 多线程异步获取数据并追加至excel,join等待线程执行完成
List<CompletableFuture> futures = new ArrayList<>();
for (int i = 0; i < 100; i++) {
CompletableFuture future = CompletableFuture.runAsync(() -> {
List<ArtCrowd> dataList = this.getDataList();
// 数据追加
streamExcelBuilder.append(dataList);
});
futures.add(future);
}
futures.forEach(CompletableFuture::join);
// 最终构建
Workbook workbook = defaultExcelBuilder.build();
AttachmentExportUtil.export(workbook, "艺术生信息", response);
}
优化后流式导出方式:
try (DefaultStreamExcelBuilder<ArtCrowd> streamExcelBuilder = DefaultStreamExcelBuilder
.of(ArtCrowd.class)
.threadPool(Executors.newFixedThreadPool(10))
.start()) {
for (int i = 0; i < 100; i++) {
// 数据追加
streamExcelBuilder.asyncAppend(this::getDataList);
}
// 最终构建
Workbook workbook = defaultExcelBuilder.build();
AttachmentExportUtil.export(workbook, "艺术生信息", response);
}
具体请移步文档:https://github.com/liaochong/myexcel/wiki/Excel%E6%B5%81%E5%BC%8F%E5%AF%BC%E5%87%BA

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Apache Tomcat 8.5.54 和 10.0.0-M4 发布
Apache Tomcat 8.5.54 和 10.0.0-M4 已发布。 Apache Tomcat 8.5.x 已取代 8.0.x,并增加了从 Tomcat 9.0.x 中吸收的新功能。与 8.5.53 相比,8.5.54 值得注意的变化包括: 在配置文件中使用 $ {...} 属性替换时,添加对默认值的支持。 配置 HTTP 连接器时,警告是否为 URIEncoding 指定的编码不是 RFC7230 要求的 US-ASCII 的超集。 将系统属性 org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH 替换为 Connector 属性 encodingSolidusHandling,添加了了一个附加选项以将 %2f 序列传递给应用而不对其进行解码。 详细变化查看更新日志。 下载地址:https://tomcat.apache.org/download-80.cgi Apache Tomcat 10.0.0-M4 属于里程碑版本,使用的是 Jakarta EE 9。Tomcat 10 及更高版本的用户应注意,作为从 Java...
-
下一篇
FASTOS 2.0.4 版本发布
2020-04-11 v2.0.4 新增百度ueditor富文本编辑器更换之前编辑器 增强ueditor 新增在线删除功能,修改ueditor 完全适配fastos,页面引入直接使用 增加上传图片添加水印 修改公告展示页面,改用iframe引入确保页面所见即所得 修复授权角色选中值丢失情况 修复表格初始化选中,获取选中行值丢失问题 修复TAB栏菜单刷新/TAB切换刷新问题 修复定时任务功能cron工具 不能显示最近执行时间,查询列表新增下次执行时间字段 新增3套登陆页面风格,可以再后台配置默认风格 整合Spring注解Redis缓存,解决Redis故障或者不可用情况任然可以执行方法获取参数 兼容不配置Redis缓存数据库项目也可以运行 解决初次登陆显示问题 登陆页面主页面增加页面压缩减低易读性,提高安全性。此功能可以全局开启 完善国际化字段 去掉Dao包,简化代码 调整包名统一规范 优化代码,修复若干细节 FASTOS 介绍 FastOS 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能