freemarker导出excel

使用freemarker导出复杂的excel表格、word文档         最近因为项目需要,需要导出复杂的excel表格。由于需要合并单元格以及样式处理,用poi导出显得比较困难。因为之前用freemarker导出过pdf/word文件,就想着能不能用其导出excel。经过一番实验,大功告成,真是比poi好用N多倍呀!废话少说,直接进入正题。        excel表格用编辑器打开后,可以发现它也是一个可编辑的标记性的格式,如同html页面里面的标签首... 阅读详情

1  将设置好格式的excel另存为xml

 

2  放到项目中,我的在

 

3  获取数据

    @RequestMapping("/exportModel.dox")
	public void ExportModel(HttpServletRequest request, HttpServletResponse response, String startTime,String endTime ) throws Exception {

        //数据获取
        StatisticsModelExport exp = new StatisticsModelExport();
		Map<String, Map<String, Map<String, String>>> data = exp.modelSheet(dataAnalysisServiceImpl, startTime, endTime);

		String dateStr = new SimpleDateFormat("MMdd").format(Calendar.getInstance().getTime());
		String fileName = "模板导出-" + dateStr + ".xls";

		// 导出
		request.setCharacterEncoding("UTF-8");
		response.setContentType("application/x-download;");
		response.setHeader("Content-disposition", "attachment; filename="
				+ new String(fileName.getBytes("gb2312"), "ISO8859-1"));

		Configuration config = new Configuration();
		//指定默认编码格式
		config.setDefaultEncoding("UTF-8");
		//设置模版文件的路径
		config.setClassForTemplateLoading(DataGroupAggsController.class, "/");
		//获得模版包
		Template template = config.getTemplate("model.xml");
		//定义输出流,注意必须指定编码
		Writer writer = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
		try {
			template.process(data, writer);
		} catch (TemplateException e) {
			e.printStackTrace();
		}

	}

 

4  数据填充

用excel打开model.xml文件(还是刚刚放到项目中的那个xml文件),将表达式填充到单元格中(由于我的sheet也比较多,每个sheet也又包含多个表格,所以我的结构是比较复杂的三重map结构)

我的map格式如下所示

 

5  将填充了表达式的xml文件替换项目中的模板

6  结束

 

freemarker导出excel时office报错而wps不会 由于excel模板是客户提供的,并且较复杂,所以采用freemarker导出会轻松很多。 第一次用freemarker按照网上教程(我用的是wps2016): http://blog.youkuaiyun.com/u010722643/article/details/41732607 1、先用excel画好模板然后另存为xml。这里用wps轻松搞定,用office则需要自己写xml模板然后映 阅读详情

相关推荐

Freemarker实现excel导出功能

Freemarker实现excel导出功能,有例子

java使用freemarker作为模板导出Excel表格

1:首先新建一个excel表格自己弄好格式如下图 2:把excel 表格另存为xml格式文件如下图 3:这个时候的文件就是xml 格式的文件了,在eclipse里面项目工程里面新建一个文件后缀为.ftl 然后把弄好的xml文件内容直接复制粘贴到.ftl文件里面 4.看一下js代码 //导出备份日志报表 export_backup_log_report:function(...

hexu_blog的博客 8120

BCIC IV 2a数据集:从下载到实战应用全解析

本文全面解析了BCI Competition IV 2a(BCIC IV 2a)数据集的应用流程。从官方渠道下载数据、解析其结构,到在MATLAB和Python环境中进行数据导入、预处理(包括处理特殊受试者A04T),并详细演示了从特征提取(如CSP)到分类(如LDA、SVM)的完整实战步骤,为脑机接口研究者提供了从入门到实践的清晰指南。

weixin_28235513的博客 973

FreeMarker语法知识

FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:&lt;#-- ... --&gt;格式部分,不会输出3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker...

iteye_14672的博客 1040

STC8G1K08A的10位PWM避坑指南:为什么你的占空比调节总失效?(附寄存器操作时序图)

本文深入剖析了STC8G1K08A单片机10位PWM功能中占空比调节失效的核心原因,揭示了数据手册未明确指出的寄存器操作时序陷阱。通过对比错误与正确配置的波形,文章指出关键在于更新占空比高2位前需临时关闭PWM输出,并提供了经过验证的安全操作宏与函数库,帮助开发者彻底解决此问题,实现0%-100%的平滑控制。

yyy34的博客 747

vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab

OS: Win10 x64Matlab: R2016bV-REP: V-REP PRO EDU v3.5.0 下载、安装与支持V-REP操作基础V-REP仿真基础Matlab环境准备一个简单的例子对V-REP有一定了解的读者可以直接跳到第三节Matlab环境准备。下载、安装与支持V-REP提供Windows、Linux和MacOS三个平台的应用程序支持,任意平台都提供教育版和专业版两个版本。教育版...

weixin_42660494的博客 3211

FreeMarker导出Excel

FreeMarker导出Excel 导出Excel的方式有许多,例如,使用POI自定义单元格,EasyPOI封装的各种导出等等。但是对应一些复杂的Excel,使用FreeMarker模板引擎导出Excel可能更为方便。废话不多说了,上源码: 1,设计模板 将需要替换的数据,如果是单个属性值,使用${属性值},如果是集合list,使用¥{list.属性值},如下图: 2,转为XML 填好之后另存为 XML电子表格,如下图: 3,修改模板 将模板放到项目下或者固定路径下,这个根据项目的要求,如果需要对立面的

weixin_45001953的博客 5817

快乐8 Ai大模型XGBoost LightGBM预测系统

随机森林回归:通过集成多个决策树模型,提高预测的准确性和稳定性。XGBoost:一种基于梯度提升的强大模型,擅长处理结构化数据。LightGBM:一种高效的基于决策树算法的分布式梯度提升框架,具有快速的训练速度和低内存消耗。高预测准确率:通过集成多种模型,提供更为精准的预测结果。多种预测方法:支持同尾号、重号、温号、连号和综合预测等多种预测策略,满足不同用户的需求。实时日志:在预测过程中,用户可以实时查看系统的预测进度和结果。

m0_72636583的博客 1万+

使用Freemarker填充模板导出复杂Excel,其实很简单哒!

虽然我以前诟病freemarker很垃圾,只要一个语法出问题,就生成不了html页面了,但相比于用poi将复杂的excel导出,freemarker其实更好用,这里完全没有用到poi的组件,只是在表格的基础上做了个填充功能,原理不复杂,但对于没做过的人来说,可能会稍微有点恐惧,我的案例告诉你,只要咬牙迈过去就好了。一个人最大的幸福莫过于在人生的中途、富有创造力的壮年,发现自己此生的使命。

机智的爆爆哥 4805

【系统架构设计师】论文:论虚拟现实技术的应用与发展

虚拟现实技术是当前科学研究的热点,同时也是国家大力支持发展的核心技术之一。所谓虚拟现实,就是通过计算机等虚拟手段来构造一个非常接近真实世界的虚拟环境,它主要体现在视觉、触觉、嗅觉等方面的逼真模拟来达到高度的沉浸性,也就是如我们通常所说的“身临其境”。

数据知道的博客 1万+

在 RAP 中把业务对象“搬到网口上”:service definition 与 service binding 的全流程、范式与实战

本文解析了SAP ABAP开发中service definition和service binding的关键作用。service definition负责选择要暴露的CDS实体和行为,形成服务模型;而service binding则将服务绑定到具体协议(如OData),生成可访问的端点。两者分离带来三大优势:支持同一模型多重发布、降低环境迁移耦合度、强化安全治理。文章通过预订业务对象的端到端示例,展示了如何从CDS建模到生成Fiori Elements预览。最后以售后工单业务为例,说明这种架构如何支持内外服务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 390

使用freemarker模板导出excel

话不多说直接进入正题,记录一次使用freemarker模板导出excel的过程: 1.先写个导出文件的工具类。代码如下: package com.xxxx.web.action.xxx; import java.io.File; import java.io.IOException; import java.io.Writer; import java.net.URLEncoder; import java.util.Map; import javax.servlet.http.HttpServl

zhx0114的博客 1502

实战!用Python爬取海关总署进出口贸易数据 —— 从反爬突破到数据可视化全流程指南

{"period": "2026-05", "country": "美国", "import_val": 123.4, "export_val": 567.8, ...}研究员可构建领先指标模型;fig = px.bar(top, x="country", y="total_usd", title="贸易总额TOP10")html.H1("海关进出口数据看板", style={"textAlign": "center"}),"""发起带签名的POST请求(实际为GET + query param)"""

2201_76125261的博客 588

Freemarker导出复杂Excel图文教程

简介 使用Freemarker导出Excel,比用poi操作Excel的方式要简单的很多,尤其像那种首行是表头,剩余行是数据的Excel,Freemarker几行代码就可以搞定。可是如果出现合并单元格、合并行的复杂Excel导出时,Freemarker的模板的插值也会变得复杂,但还是要比poi简单的多,用过Freemarker后,只要Freemarker能做到的,再也不想用poi导出Excel了。...

五道口 6440

FPGA和USB3.0通信-USB3.0 PHY介绍

可以和FPGA搭配使用的USB3.0 PHY芯片通过之前的介绍<FPGA和USB3.0通信-USB3.0协议介绍USB3.0 PHY简介首先我们需要了解PHY具体完成哪些工作以及我利...

OpenFPGA的博客 4940

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Freemarker整合poi导出带有图片的Excel教程

序言 前一篇文章《Freemarker导出复杂Excel图文教程》,讲解了使用Freemarker导出复杂的Excel,本文将在前文的基础之上,讲解使用Freemarker导出Excel后,在整合poi插入图片到Excel,从而实现Freemarker导出带有图片的Excel工具。 为什么要做这个工具呢? 因为Freemarker是不支持导出带有图片的Excel的,不支持的原因是Freemarke...

五道口 5923

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

freemarker导出复杂样式的Excel

freemarker导出复杂样式的Excel 代码地址: gitee https://gitee.com/suveng/demo/tree/master/chapter.002 代码存放于demo下面的chapter.002目录下, 每个模块都是独立开的springboot应用,可以直接运行 application 环境 springboot 2.1.2 Freemarker 2.3.28 JD...

suveng's blog 766

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

freemarker个性化导出excel

前言 导出excel是比较常见的需求,有时候需要导出的excel有固定的格式,这里记录一下FreeMarker导出excel,暂时不了解FreeMarker基本语法的请先去学习一下。 正文 FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌...

路人也是身边人的博客 885

freemarker导出定制excel

之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经停止更新和维护 POI是apache的项目,可对微软的Word,Excel,ppt等进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI 如果只是简单的excel,用上述工具导出没...

weixin_30760895的博客 155

freemarker导出excel笔记

word/exce模板插入数据,freemarker使用方法及问题

sx_1706的博客 1175

ftl模板导出excel_freemarker导出Excel

freemarker 导出Excel原创2015年10月23日 14:47:05927在项目开发中,导出Excel 是比较常见的功能, 以前用过POI导出Excel 文件, 但是POI 在使用方面比较麻烦, 而用freemarker 来导出Excel 会简单很多。1. 创建Excel文件:student.xls ,你想生成什么样式的Excel 文件, 先做一个模板。 2. 另存为 xml 文件:...

weixin_33644222的博客 1485

FreeMarker导出复杂Excel

最近业务需要做复杂的Excel导出功能,由于Execl样式复杂,本来想做基于标签占位符的导出,由于时间有限,没有时间语言和写demo,最后还是选择了基于POI的导出,就是样式复杂了点。 现在有时间研究了一下使用freemarker导出复杂的excel表格(word也是可以的)。 一、首先根据最终需要导出的excel表格的格式,用假数据填充后生成一个excel模板。 例如下面使我们要导出的人员信息。...

盲目的拾荒者的博客 1376

ftl模板导出excel_freemarker导出定制excel

之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经停止更新和维护POI是apache的项目,可对微软的Word,Excel,ppt等进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI如果只是简单的excel,用上述工具导出没有任何问...

weixin_32421193的博客 518

java freemarker jxl excel_freemarker导出定制excel

之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经停止更新和维护POI是apache的项目,可对微软的Word,Excel,ppt等进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI如果只是简单的excel,用上述工具导出没有任何问...

weixin_36315943的博客 161
上一篇: ftp服务器搭建
下一篇: es配置xpack认证,生成ca证书
less_more548
博客等级 码龄9年 5粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值