千家信息网

Easypoi如何实现复杂excel文件导出功能

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"Easypoi如何实现复杂excel文件导出功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2026年11月04日Easypoi如何实现复杂excel文件导出功能

本篇内容介绍了"Easypoi如何实现复杂excel文件导出功能"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

之所以用Easypoi我是看中了它可以直接根据现有模板填充数据实现excel生成,而模板产品已经给出,那么接下来只需要稍微做修改就能使用,修改后的模板如图:

注意其中的{{$fe: 是遍历listmap变量循环填充数据行,其他则是类似占位符,很好理解

 //代码就纯粹只是把模板的占位符和变量对应起来        Map map = new HashMap();        map.put("code", customer.getCode());        map.put("name", customer.getName());        map.put("mobile", customer.getMobile());        map.put("membershipGrade", customer.getMembershipGrade());        map.put("zzyMembershipGrade", customer.getZzyMembershipGrade());        map.put("addressComplete", customer.getAddressComplete());        List> listMap = new ArrayList>();        map.put("maplist", listMap);        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        for (MainOrderSubOrderFinanceResult financeResult : mainOrderSubOrderFinanceResults) {            Map lm = new HashMap();            lm.put("orderCode", financeResult.getOrderCode());            lm.put("payStatusDesc", financeResult.getPayStatusDesc());            lm.put("settlementTypeDesc", financeResult.getSettlementTypeDesc());            lm.put("billDate", dateFormat.format(financeResult.getBillDate()));            lm.put("totalAmount", financeResult.getTotalAmount().stripTrailingZeros().toPlainString());            lm.put("discountAmount", financeResult.getDiscountAmount().stripTrailingZeros().toPlainString());            lm.put("amount", financeResult.getAmount().stripTrailingZeros().toPlainString());            lm.put("payAmount", financeResult.getPayAmount().stripTrailingZeros().toPlainString());            lm.put("amountPaid", financeResult.getAmountPaid().stripTrailingZeros().toPlainString());            listMap.add(lm);            sumTotalAmount = sumTotalAmount.add(financeResult.getTotalAmount());            sumDiscountAmount = sumDiscountAmount.add(financeResult.getDiscountAmount());            sumAmount = sumAmount.add(financeResult.getAmount());            sumPayAmount = sumPayAmount.add(financeResult.getPayAmount());            sumAmountPaid = sumAmountPaid.add(financeResult.getAmountPaid());        }        map.put("sumTotalAmount", sumTotalAmount);        map.put("sumDiscountAmount", sumDiscountAmount);        map.put("sumAmount", sumAmount);        map.put("sumPayAmount", sumPayAmount);        map.put("sumAmountPaid", sumAmountPaid);        //生成临时模板文件        String url="";        try {            File temp = File.createTempFile("exportCreditBillResult", ".xlsx");            FileUploadHelper.inputStream2File(this.getClass().getClassLoader().getResourceAsStream("exportCreditBillResult.xlsx"),temp);            url=temp.getAbsolutePath();            temp.deleteOnExit();        } catch (IOException e) {        }        TemplateExportParams params = new TemplateExportParams(url);        Workbook workbook = ExcelExportUtil.exportExcel(params, map);

做这个功能有一个关键点:

由于TemplateExportParams构造函数只支持传入文件路径,而直接传入resource下的模板文件路径在线上环境会有问题(本地没问题),因此需要用getResourceAsStream读取后生成临时文件,再把临时文件url传入

"Easypoi如何实现复杂excel文件导出功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

文件 模板 功能 复杂 接下来 内容 变量 数据 更多 知识 路径 问题 生成 实用 学有所成 之所以 产品 代码 关键 关键点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国互联网科技巨头监管 朗新科技与工业互联网 互联网中国科技 远信互联网科技 互联网科技排名 互联网科技视频 互联网 新科技 国外互联网科技网站 丰台科技园 互联网公司 老年人脱离互联网科技的作文 深圳国际航运科技和互联网 互联网科技中介 央行互联网金融科技公司 互联网5g黑科技有哪些 乌苏新华互联网科技做什么的 互联网安防科技感 互联网科技企业商标注意事项 山东蛋芒互联网科技有限公司 陕西彩京云互联网科技有限公司 宁波允成互联网科技有限公司 中智农互联网科技 九亚互联网科技 金融科技与互联网金融相同和不同 茂名市互联网科技产业园 深圳育鹏互联网科技有限公司招聘 乌苏新华互联网科技做什么的 迪庆互联网科技招生 每天都有哪些好的互联网科技 新氧科技和美国互联网有关系吗 恒生科技指数 中概互联网
0