MyExcel 3.6.0 版本发布,支持列表&模板混合导出
MyExcel,是一个集导入、导出、加密Excel等多项功能的Java工具包。
MyExcel采用声明式语法来构建、读取Excel,屏蔽POI的具体操作细节(对POI无感知),以开发常用的技术替代,使得构建(从简单到高度复杂Excel)以及读取Excel变得极为便利,且构建、读取性能极为优异,占用内存极低(具体,请移步参考MyExcel&阿里EasyExcel性能对比)。
如导入:
List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class) .sheet(0) // 0代表第一个,如果为0,可省略该操作,也可sheet("名称")读取 .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行 .beanFilter(ArtCrowd::isDance) // bean过滤 .read(path.toFile());
本次更新如下:
- 重构模板构建器ExcelBuilder,使用TemplateHandler处理模板解析;
- DefaultStreamExcelBuilder支持模板追加;
- 新增MyExcelConfiguration,支持对MyExcel进行全局设置,如自定义临时文件目录;
- 优化ExcelBuilder资源处理,提升模板构建效率;
- 重命名@ExcelModel等注解对应配置类名称,易于理解;
- 优化单元测试文件存放目录,避免clone后无法直接执行单元测试问题;
在某些情况下,可能需要个性化的表头,或者汇总等等,这些需求可能会涉及合并行、列、样式等复杂布局,而且导出的数据可能又比较大,DefaultStreamExcelBuilder
本身对Bean的能力不足以支撑复杂布局,为兼容海量数据导出与复杂布局,版本3.6.0以及以后,DefaultStreamExcelBuilder
支持模板的追加,在模板中定义复杂布局,追加模板方式如下
代码示例:
try (DefaultStreamExcelBuilder<ArtCrowd> streamExcelBuilder = DefaultStreamExcelBuilder .of(ArtCrowd.class) .templateHandler(FreemarkerTemplateHandler.class)// 追加模板数据,可选,适合极度个性化数据导出 .start()) { // 模板数据追加 Map<String,Object> dataMap = this.getDataMap(); streamExcelBuilder.append("/templates/test.ftl", dataMap); // 普通数据追加 List<ArtCrowd> dataList = this.getDataList(); streamExcelBuilder.append(dataList); // 最终构建 Workbook workbook = defaultExcelBuilder.build(); AttachmentExportUtil.export(workbook, "艺术生信息", response); }
首先,需要指定模板处理器:templateHandler(FreemarkerTemplateHandler.class),除FreemarkerTemplateHandler,还有BeetlTemplateHandler、EnjoyTemplateHandler、ThymeleafTemplateHandler等其他5种常用模板处理器;
其次,使用append方法追加模板数据,该方法接受相对路径以及绝对路径模板,绝对路径方式如下:
append("C:/User/project/templates","test.ftl",dataMap);
最终效果如下:
具体,请移步文档,参见流式导出部分:文档
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
gowe 1.0.6 发布,Golang 多微信号 SDK
gowe,golang多微信号SDK,readygo子项目API文档 项目源码: https://gitee.com/chunanyong/gowe go get gitee.com/chunanyong/gowe 支持境内普通商户和境内服务商(境外和银行服务商没有条件测试) 全部参数和返回值均使用struct类型传递 缓存前置,使用项目现有的缓存体系 原生支持多微信号 支持跳板请求微信API服务.例如内网服务器没有网络出口权限,可以使用Nginx跳板请求微信API服务 原生支持集群部署 更新内容如下: 删除无效的小程序模板消息接口WxMaTemplateMsgSend 增加公众号订阅消息推送接口WxMpSubscribeMsgSend
- 下一篇
zorm 1.3.0 发布,Golang 轻量级 ORM
zorm,golang 轻量级 ORM,readygo子项目 源码地址:https://gitee.com/chunanyong/zorm go get gitee.com/chunanyong/zorm 基于原生sql语句编写,是springrain的精简和优化. 自带代码生成器 代码精简,总计2000行左右,注释详细,方便定制修改. 支持事务传播,这是zorm诞生的主要原因 支持mysql,postgresql,oracle,mssql,sqlite 支持数据库读写分离 更新性能zorm,gorm,xorm相当. 读取性能zorm比gorm,xorm快一倍 测试用例即文档: https://gitee.com/chunanyong/readygo/blob/master/test/testzorm/BaseDao_test.go 生产使用参考UserStructService.go 更新内容如下: 去掉zap日志依赖,通过复写 FuncLogError FuncLogPanic FuncPrintSQL实现自定义日志 golang版本依赖调整为1.13 迁移测试用到readyg...
相关文章
文章评论
共有0条评论来说两句吧...