如何实现jxls多模板多sheet导出excel文件
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"如何实现jxls多模板多sheet导出excel文件"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月03日如何实现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安全错误
数据库的锁怎样保障安全
中国互联网科技股
深圳互联网科技公司
互联网科技作文
互联网金融科技创新
致聘互联网科技
互联网科技英文翻译
互联网科技公司招聘
广州优美互联网科技
互联网科技热点资讯
河南猎农互联网科技有限公司
洛阳昕诺飞互联网科技有限公司
电子科技大学互联网创业大赛
洛阳共同富裕互联网科技有限公司
张召忠谈中国互联网科技
工业互联网科技成果转化
卡尔迅互联网科技有限公司
普陀区互联网教育科技管理办法
互联网科技企业商标注意事项
东风日产互联网科技公司叫什么
互联网企业和网络科技有限公司
科技互联网产品
互联网科技深圳
科技服务与互联网
互联网 新科技
美国互联网前沿科技
科技互联网大厂
河南猎农互联网科技有限公司
新兴科技互联网创新大赛颁奖典礼
四川互联网展示科技馆设计
全球科技与互联网公司市值变化