如何实现jxls多模板多sheet导出excel文件
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"如何实现jxls多模板多sheet导出excel文件"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2025年02月01日如何实现jxls多模板多sheet导出excel文件
本篇内容介绍了"如何实现jxls多模板多sheet导出excel文件"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.工具类
public static boolean exportMultSheetExcel(InputStream is, OutputStream os, Mapmodel, Map sheet) { Context context = PoiTransformer.createInitialContext(); JxlsHelper jxlsHelper = JxlsHelper.getInstance(); Transformer transformer = jxlsHelper.createTransformer(is, os); AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer); if (model != null) { for (String key : model.keySet()) { context.putVar(key, model.get(key)); } } try { //获得配置 JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig().getExpressionEvaluator(); Map functionMap = new HashMap (); functionMap.put("utils", new JxlsUtils()); evaluator.getJexlEngine().setFunctions(functionMap); List xlsAreaList = areaBuilder.build(); if (sheet != null) { for (Integer index : sheet.keySet()) { Area xlsArea = xlsAreaList.get(index); xlsArea.applyAt(new CellRef(sheet.get(index) + "!A1"), context); } } transformer.write(); is.close(); } catch (Exception e) { log.error("批量写文件错误", e); return false; } return true; }
2.接口调用
// 获取模板文件 String tplfileName = "multi_sheet_tpl.xlsx"; String tmpFileName = FileUtil.getTmpFileName(cName+"与"+gName); String tmpFilePath = FileUtils.getTempDirectoryPath() + File.separator + tmpFileName; // 写目标文件 log.info("开始写目标文件tplfileName:{},tmpFileName:{}", tplfileName, tmpFileName); OutputStream os = new FileOutputStream(tmpFilePath); InputStream inputStream = FileUtil.getFileTplInputStream(tplfileName); if (os != null && tplfileName != null) { Mapmodel = new HashMap (); //sheet1 model.put("cGasOrders", list); //sheet2 model.put("cName", cName); Map sheet = new HashMap<>(); sheet.put(0, "对账函"); sheet.put(1, "对账明细"); JxlsUtils.exportMultSheetExcel(inputStream, os, model, sheet); os.close(); }
3.area的构建
jXLS使用AreaBuilder接口构建Area,jXLS提供了两个实现类:XmlAreaBuilder和XlsCommentAreaBuilder。
XmlAreaBuilder是基于XML配置文件构建Area,XlsCommentAreaBuilder是基于Excel模板中的单元格注释构建Area。默认,jXLS使用XlsCommentAreaBuilder构建Area。可以通过JxlsHelper.setAreaBuilder()方法切换构建Area的方式。其实,这两种构建方式都是基于解析各自的配置使用Java API构建Area。
4.总结
该实现最重要的点就是工具类的书写,写出工具类之后后面的直接调用即可,多模板主要是在单模板的基础上多了area划分,每一个sheet下不同模板不同的区域划分,写好后直接往里传数据就实现了多模板多sheet导出。
"如何实现jxls多模板多sheet导出excel文件"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
模板
工具
配置
不同
内容
接口
方式
更多
目标
知识
实用
明细
重要
学有所成
接下来
两个
区域
单元
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
前端还是软件开发
网络设置服务器名称什么
即时通讯软件开发哪个
网络安全包括哪些能力
网络安全实战讲解
web服务器的端口
13482 信用数据库
息数据库建设技术原理
华夏育英网络技术北京
天津免备案虚拟主机空间服务器
怎么用语句附加数据库
软件开发银行外包前景
计算机网络技术专业前沿技术总结
手机袋互联网科技有限公司
服务器至强系列
主机配套的空数据库
深圳易佰网络技术有限公司
有哪些方法保障网络安全
玉溪长期上门回收服务器
硬件运维基础网络技术支持
清科数据库企业并购2019
网络安全技术监督
护苗 网络安全课程之五
上海品质软件开发设施服务标准
vps虚拟主机服务器
玉溪互联网科技怎么选
太仓同维软件开发
支付宝软件开发工资待遇
游戏服务器断开请重试是什么意思
数据库 参数修改