DocumentHandler-ftl生成word
|
import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; public class DocumentHandler { private Configuration configuration = null; /** * 创建configuration * @param ftlSrc 模版存放路径,ftl所在的文件夹路径 */ public DocumentHandler(String ftlSrc) { configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); try { configuration.setDirectoryForTemplateLoading(new File(ftlSrc)); } catch (IOException e) { e.printStackTrace(); } } /** * 根据ftl生成word方法 * @param dataMap -- 数据集 * @param fileSrc -- 生成后的文件地址 * @param ftlName -- ftl模版名称 */ public void createOrderAndDown(Map<String,Object> dataMap,String fileSrc,String ftlName) { Template t=null; try { //test.ftl为要装载的模板 t = configuration.getTemplate(ftlName); } catch (IOException e) { e.printStackTrace(); } //输出文档路径及名称 File outFile = new File(fileSrc); //如果输出目标文件夹不存在,则创建 if (!outFile.getParentFile().exists()){ outFile.getParentFile().mkdirs(); } Writer out = null; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8")); //生成 t.process(dataMap, out); } catch (Exception e) { e.printStackTrace(); }finally { if(out!=null){ //关闭流 try { out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 要把模版生成合同 * @param dataMap 数据map集合 * @param fileSrc 生成后的文件路径 */ public void createDoc(Map<String,Object> dataMap,String fileSrc) { //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载, //这里我们的模板是放在/com/zhiwei/credit/util/xmlToWord/firstCreditor包下面 // configuration.setClassForTemplateLoading(this.getClass(), "/com/zhiwei/credit/util/xmlToWord/firstCreditor"); // configuration.setServletContextForTemplateLoading(ServletActionContext.getContext(), "WEB-INF/templates"); // configuration.setDirectoryForTemplateLoading(arg0); Template t=null; try { //test.ftl为要装载的模板 t = configuration.getTemplate("firstCreditor.ftl"); } catch (IOException e) { e.printStackTrace(); } //输出文档路径及名称 File outFile = new File(fileSrc); //如果输出目标文件夹不存在,则创建 if (!outFile.getParentFile().exists()){ outFile.getParentFile().mkdirs(); } Writer out = null; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8")); //生成 t.process(dataMap, out); } catch (Exception e) { e.printStackTrace(); }finally { if(out!=null){ //关闭流 try { out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } } } } |
DocumentHandler-ftl生成word的更多相关文章
- JAVAWEB使用FreeMarker利用ftl把含有图片的word模板生成word文档,然后打包成压缩包进行下载
这是写的另一个导出word方法:https://www.cnblogs.com/pxblog/p/13072711.html 引入jar包,freemarker.jar.apache-ant-zip- ...
- FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个方案只能在java中运行,无法在Android项目中运行.所以此方案是:APP将表单数据发送给后台,后台通过freemarker ...
- JAVA生成word的几种方法对比
首先介绍几种java导出word方案 1.Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现 ...
- 使用freemarker生成word,步骤详解并奉上源代码
1. 步骤 1. 用word编辑好模板 1. 普通字符串替换为 ${string} 2. 表格循环用标签 <#list userList as user> 姓名:${user.u ...
- java freemark生成word文档
1.下载freemarker-2.3.19.jar 2.把要填充的内容用 ${title},${no}代替 3.用word 打开,保存为2003xml 4.打开生成xml文件,看下有没有把表达式 ...
- 使用freemarker模板生成word文档
项目中最近用到这个东西,做下记录. 如下图,先准备好一个(office2003)word文档当做模板.文档中图片.姓名.性别和生日已经使用占位符代替,生成过程中将会根据实际情况进行替换. 然后将wor ...
- 【java】Freemarker 动态生成word(带图片表格)
1.添加freemarker.jar 到java项目. 2.新建word文档. 3.将文档另存为xml 格式. 4.将xml格式化后打开编辑(最好用notepad,有格式),找到需要替换的内容,将内容 ...
- springboot中使用freemarker生成word文档并打包成zip下载(简历)
一.设计出的简历模板图以及给的简历小图标切图 二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件: 三.直 ...
- freemarker根据模板生成word文件实现导出功能
一.准备工作 1.创建一个03的word文档,动态的数据用占位符标志占位(如testname).然后另存为word2003的xml文件. 2.格式化xml文件,占位符的位置用${testname}代替 ...
随机推荐
- centos7.5 安装java11
jdk的下载地址如下: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 第一 ...
- Easy-Mock模拟get接口和post接口实例
1.先创建项目,再新建接口 创建项目入口:首页右下角 + 按钮 创建接口入口如下图: 关于mock的语法这里不做说明,可查看mock.js官方查看更详情的资料. 小tip:在Easy-Mock里面支持 ...
- day005-python基础数据类型之课后作业讲解
1.元素的分类 需求:有如下集合[11,22,33,44,55,66,77,88,99,90……],将所有大于66的值保存在字典的第一个key中,将小于66的值保存在第二个key的值中 代码实现: # ...
- 第八次 Java 作业 重写正方形周长方法
# 题目 编写一个应用程序,创建一个矩形类,类中具有长.宽两个成员变量和求周长的方法. 再创建一个矩形类的子类——正方形类,类中定义求面积方法.重写求周长的方法. 在主类中,输入一个正方形边长,创建正 ...
- NOI2019 回家路线 DP
「NOI2019」回家路线 链接 loj 思路 f[i][j]第i个点,时间为j,暴力转移 复杂度O(m*t),好像正解是斜率优化,出题人太不小心了233 代码 #include <bits/s ...
- 【JZOJ6213】【20190613】String
题目 \(n \le 10^{18} \ , \ |T| \le 10^5\) 题解 显然,最少的操作次数一定是贪心地能匹配就匹配 我们可以建出\(T\)的SAM,把SAM不能走的边补到根的后继节点 ...
- day03 数据基础
1.列举字符串,列表,元组,字典每个常用的五个方法 字符串: strip() , lstrip(),restrip() count(),index(),find() startswith,endswi ...
- mysql初始
数据(data) : -描述事物的符号记录称为数据,符号既可以是数据,文字,图片,声音,语言等,符号都可以经过数字化后存入计算机中 - 计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录 ...
- js处理事件冒泡(兼容写法)
event = event || window.event; if (event.stopPropagation) { event.stopPropagation(); } else { event. ...
- 解决linux环境下nohup: redirecting stderr to stdout问题
在生产环境下启动Weblogic时,发现原来好好的nohup信息输出到指定文件中的功能,突然出问题了.现象是控制台输出的信息一部分输出到了我指定的文件,另一部分却输出到了nohup.out,而我是不想 ...