如何实现jxls多模板多sheet导出excel文件
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇内容介绍了"如何实现jxls多模板多sheet导出excel文件"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2025年11月16日如何实现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) { Map model = 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安全错误
数据库的锁怎样保障安全
ii型网络安全监控装置
校园网络安全文献
数据库属性列是什么意思
数据库脚本执行管理器
网络技术试讲万能模板逐字稿
手机检查服务器
简单设计php数据库系统
杨大网络安全试卷
葫芦岛节能软件开发团队
吉林统一软件开发创意
联通网络技术大会ppt下载
华为的云服务器价格
蒂森尚途服务器面板说明
数据库主键的类型
腾讯服务器
生态环境与网络安全
闫村网络安全科技园
普通内存和服务器内存
网络安全培训会内容
第五人格一直在服务器是咋回事
等保测评网络安全管理员
ajax 循环回传数据库
长宁区信息网络技术推荐咨询
win服务器怎么部署才安全
软件开发需要用到对象存储吗
数据库分表基因注入法
外星科技互联网小说
永嘉手机软件开发公司哪家好
网络安全的问题认识
网络技术专业毕业生工作