Java导出freemarker实现下载word文档格式功能
首先呢,先说一下制作freemarker模板步骤,
1. 在WPS上写出所要的下载的word格式当做模板
2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注
3. 把固定模板另存为htm或者html格式
4. 用文本编辑器(例:EditPlus,HBuilder等工具)打开模板,并将标注内容替换成 ${要获取的字段} 这种格式,类似于传参数,可以传多个参数
5. 将修改后的模板保存,并将后缀名改为ftl格式。至此 我们的freemarker模板就大功告成了
PS: 最好将建好的模板放到文件夹内,方便统一管理。
如果是web项目,模板之类的最好放在/WEB-INF/下,不是web项目的话最好放在classpath下。
其次,就是将制作好的模板导入到项目里的步骤了
1. 第一步肯定是把制作好的模板放到指定的路径并且导入freemarker的jar包,这个是毋庸置疑的吧
2. 我们需要在Spring配置文件内加上以下这么一段代码
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/config/template/" /> <!-- 这里的value就填写我们的模板加载路径 -->
<property name="freemarkerSettings"> <!-- 配置freemarker环境属性 -->
<props>
<prop key="template_update_delay">0</prop> <!-- 刷新模板的周期,单位为秒 -->
<prop key="default_encoding">GBK</prop> <!-- 设置默认编码格式 -->
<prop key="locale">zh_CN</prop> <!-- 设置语言环境信息-->
</props>
</property>
</bean>
3. 接下来我们就要编写我们的下载模板类啦(在这里我采用了数据库加载模式加载我们的Freemarker模板文件)


如上图所示 我们的调用模板也就写好啦,接下来的就是方法的调用和添加参数问题了
4. 方法的调用和添加参数
添加参数:
private void getData(Map<String, Object> dataMap) {
String param1 = " 参数一 ";
String param2 = " 参数二 ";
... 参数有几个就创建几个
dataMap.put("param1", param1);
dataMap.put("param2", param2);
... 参数有几个就添加几个
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for (int i = 0; i < list.size(); i++) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("number", i);
map.put("content", "内容"+i);
list.add(map);
dataMap.put("list", list);
}
}
方法调用:
public void downLoad(Map<String, Object> dataMap)throws Exception {
getData(dataMap);
String templateName = "pinggu.ftl"; // 模板文件名
String filePath = "D:/downLoad"; // 输出文档路径
String fileName = "评估意见.docx"; // 输出文件名称
String modelPath = request.getSession().getServletContext().getRealPath("/") + "WEB-INF/template/ftl/"; // 模板文件路径
CancerUtil.createDoc(dataMap,fileName,templateName,filePath,modelPath);
}
至此 我们的实现下载word文档格式功能就完成了 下一章呢,我想写一下我对加载freemarker模板路径三个方法的理解和认识,希望大家指出我的错误
Java导出freemarker实现下载word文档格式功能的更多相关文章
- freemarker导出带图片的word文档
最近做一个关于文档导出功能, 顺便学习了下freemarker,做了个关于导出带图片的word文档,模板并没有写全,只是验证代码的正确性 这只是做一个小功能,故只做了后台代码关于导出的代码,并未与前台 ...
- Java jacob调用打印机打印word文档
前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...
- C#导出文本内容到word文档源码
将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...
- 关于PowerDesigner导出数据库表到word文档
关于PowerDesigner导出数据库表到word文档 一.查看全部模板: powerdesigner默觉得我们提供了非常多的模版,在工具栏中选择[Report(报告)--->Report T ...
- 用java语言通过POI实现word文档的按标题提取
最近有一个项目需要将一个word文档中的数据提取到数据库中.就去网上查了好多资料,最靠谱的就是用poi实现word文档的提取. 喝水不忘挖井人,我查了好多资料就这个最靠谱,我的这篇博客主要是借鉴htt ...
- Java 如何在线打开编辑word文档?
在一般的OA项目中经常会遇到在线处理Office文档的需求,先下载文件,编辑保存后再选择文件上传的方式太过原始,在如今早已是Office Online的时代,没有用户能接受这种蹩脚的操作方式. 虽然微 ...
- Java 使用新方法打印Word文档
前言 我曾写过一篇文章,它主要介绍了如何通过物理打印机和虚拟打印机来打印Word文档.今天这篇教程将介绍一种新的方法来实现对Word文档的打印. 此次使用到的类库仍然是Spire.Doc for Ja ...
- 前端调用后台接口下载word文档的两种方法
1传统的ajax虽然能提交到后台,但是返回的数据被解析成json,html,text等字符串,无法响应浏览器下载.就算使用bob模拟下载,数据量大时也不方便 废话不多说:上代码(此处是Layui监听提 ...
- Java 读取txt文件生成Word文档
本文将以Java程序代码为例介绍如何读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: IntelliJ IDEA Free Spire.Doc for Java T ...
随机推荐
- Do you know how many stuff inside your Google Account?
My friend Sandy she wants me to do her a favor. She'd like to clear Hangouts chat history. I think s ...
- 推荐一款强大的3D家装开源软件
2015年家装o2o着实火了一把.家装涉及到上门量尺,再设计,这个过程是免不了的. 目前基于bs架构的酷家乐,爱福窝等,流行起来就是着力于这点,通过一个点寻找突破口,进入深度挖掘,带动其他家具等产品来 ...
- MySQL两大存储引擎InnoDB与MyISAM
1.InnoDB存储引擎 MySQL5.5中InnoDB成为默认的存储引擎.InnoDB是事务型存储引擎,被设计用来处理大量的短期事务.它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行. 所以 ...
- Tomcat系统架构分析
Tomcat系统架构分析 关于这边blog呢,实际开发中并不会用到,但是我觉得还是很有必要认真的写一下.毕竟我们每天在本地撸码的时候使用的就是tomcat来做web服务器.一个常识就是说我们本地在to ...
- spark-遇到问题小结
经常会遇到 类似 shuffle 0 的错误,或者 connect refuse .主要是shuffle 导致内存不足引起的.shuffle 分为 shuffle read 和write . 1. ...
- Unity DoTween 动画使用案例
这边我就直接放一个标准的Dotween动画的使用demo吧. 这个案例满足应该可以完成你所想实现的几乎所有复杂动画. void PlayTween() { //set tween data float ...
- linux下安装pip
1.pip下载安装 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d ...
- JSP自定义标签就是如此简单
tags: JSP 为什么要用到简单标签? 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并 ...
- C#基础(四)--值类型和引用类型,栈和堆的含义
本文主要是讨论栈和堆的含义,也就是讨论C#的两种类据类型:值类型和引用类型: 虽然我们在.net中的框架类库中,大多是引用类型,但是我们程序员用得最多的还是值类型. 引用类型如:string,Obje ...
- MUI 图片上传实现
HTML代码 <!doctype html> <html> <head> <meta charset="UTF-8"> <ti ...