阅读目录
• 1.word 里面调整好排版,包括你想生成的动态部分,还有一些不用生成的规则性的文字
• 2. 将 word 文档保存为 xml
• 3.用 Firstobject free XML edito 打开,将你需要动态生成的字段打上标记,${} 这样就可以
• 4.将 xml 文件更改后缀名 为 .ftl, 然后引用到你的项目中
项目中需要用 java 程序生成doc 文件,百度一番,FreeMarker 的评价比较高,FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,至于想详细了解 FreeMarker 的请去问百度.....
这篇博文主要是总结自己在用网上例子时遇到的坑。吃水不忘挖井人,还是要感谢分享技术的前辈。
原文链接:
http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml [博主博客很漂亮,赞一个]
参照过的例子链接:
1.http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml
2.
FreeMarker.jar 下载地址:
1.
2.
主要思路如下:
回到顶部
1.word 里面调整好排版,包括你想生成的动态部分,还有一些不用生成的规则性的文字
回到顶部
2. 将 word 文档保存为 xml
回到顶部
3.用 Firstobject free XML edito 打开,将你需要动态生成的字段打上标记,${} 这样就可以
FreeMarker 还支持需要丰富的标记,如果你想展示更复杂和丰富的内容,都可以实现;
Firstobject free XML edito 友情下载链接:
回到顶部
4.将 xml 文件更改后缀名 为 .ftl, 然后引用到你的项目中
需要注意的问题:
a. word 版本不能低于 2003 ,因为 2003 才开始支持 xml;
b.用 Firstobject free XML edito 打开 要编辑的 xml 文件时,记得xml 不要放在含有中文路径的目录中【编辑器会无响应,然后你知道的.....】。
实现的代码如下:
1 import java.io.BufferedWriter;
2 import java.io.File;
3 import java.io.FileOutputStream;
4 import java.io.OutputStreamWriter;
5 import java.io.Writer;
6 import java.sql.Connection;
7 import java.sql.ResultSet;
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import cn.sina.ttjava_13.database.DB;
12 import freemarker.template.Configuration;
13 import freemarker.template.Template;
14
15 public class WordTest {
16
17 private Configuration configuration = null;
18 private Connection conn;
19 private ResultSet res;
20
21 public WordTest() {
22 configuration = new Configuration();
23 configuration.setDefaultEncoding("UTF-8");
24 }
25
26 public void createWord() {
27 Map<String, Object> dataMap = new HashMap<String, Object>();
28 try {
29 String selectSql = "SELECT ID,NAME,NORMALPRICE,MEMBERPRICE FROM T_PRODUCT WHERE 1 LIMIT 10";
30 conn = DB.getConn();
31 res = DB.getRs(conn, selectSql);
32 while(res.next()){
33 dataMap.put("id", res.getString("id").trim());
34 dataMap.put("name", res.getString("name").trim());
35 dataMap.put("normalprice", res.getString("normalprice").trim());
36 dataMap.put("memberprice", res.getString("memberprice").trim());
37
38 configuration.setClassForTemplateLoading(this.getClass(), "/template"); // FTL文件所存在的位置
39 Template template = configuration.getTemplate("Product.ftl");
40
41 File outFile = new File("D:/temp/"+ res.getString("name").trim().replaceAll("/", "") +".doc");
42 Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
43 template.process(dataMap, out);
44 out.close();
45 }
46 DB.close(res);
47 DB.close(conn);
48 } catch (Exception e) {
49 e.printStackTrace();
50 }
51 }
52
53 public static void main(String[] args) {
54 WordTest test = new WordTest();
55 test.createWord();
56 }
57 } a. 代码数据库为 mysql ,将查询到的数据,动态填入到wod 中;
b.template.process(),接受一个 Map 和 输入流做为入参,Map 既是你需要动态生成到 doc 里面的数据,字段名必须与你在 .ftl 里面定义的一致;
c. 我觉得数据的来源可以很多,程序计算的结果,数据库存储的数据,页面点击的数据.........
d. 如果你想利用这段代码,需要有一个 .ftl 文件,并且在你的项目 src 目录下面新建 template 目录;
e.我不知道怎样把 .ftl 文件上传上来,如果需要做例子的,请在下面留言,我发给你。
阅读目录
• 1.word 里面调整好排版,包括你想生成的动态部分,还有一些不用生成的规则性的文字
• 2. 将 word 文档保存为 xml
• 3.用 Firstobject free XML edito 打开,将你需要动态生成的字段打上标记,${} 这样就可以
• 4.将 xml 文件更改后缀名 为 .ftl, 然后引用到你的项目中
项目中需要用 java 程序生成doc 文件,百度一番,FreeMarker 的评价比较高,FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,至于想详细了解 FreeMarker 的请去问百度.....
这篇博文主要是总结自己在用网上例子时遇到的坑。吃水不忘挖井人,还是要感谢分享技术的前辈。
原文链接:
http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml [博主博客很漂亮,赞一个]
参照过的例子链接:
1.http://www.360doc.com/content/13/0731/10/13247663_303740756.shtml
2.
FreeMarker.jar 下载地址:
1.
2.
主要思路如下:
回到顶部
1.word 里面调整好排版,包括你想生成的动态部分,还有一些不用生成的规则性的文字
回到顶部
2. 将 word 文档保存为 xml
回到顶部
3.用 Firstobject free XML edito 打开,将你需要动态生成的字段打上标记,${} 这样就可以
FreeMarker 还支持需要丰富的标记,如果你想展示更复杂和丰富的内容,都可以实现;
Firstobject free XML edito 友情下载链接:
回到顶部
4.将 xml 文件更改后缀名 为 .ftl, 然后引用到你的项目中
需要注意的问题:
a. word 版本不能低于 2003 ,因为 2003 才开始支持 xml;
b.用 Firstobject free XML edito 打开 要编辑的 xml 文件时,记得xml 不要放在含有中文路径的目录中【编辑器会无响应,然后你知道的.....】。
实现的代码如下:
1 import java.io.BufferedWriter;
2 import java.io.File;
3 import java.io.FileOutputStream;
4 import java.io.OutputStreamWriter;
5 import java.io.Writer;
6 import java.sql.Connection;
7 import java.sql.ResultSet;
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import cn.sina.ttjava_13.database.DB;
12 import freemarker.template.Configuration;
13 import freemarker.template.Template;
14
15 public class WordTest {
16
17 private Configuration configuration = null;
18 private Connection conn;
19 private ResultSet res;
20
21 public WordTest() {
22 configuration = new Configuration();
23 configuration.setDefaultEncoding("UTF-8");
24 }
25
26 public void createWord() {
27 Map<String, Object> dataMap = new HashMap<String, Object>();
28 try {
29 String selectSql = "SELECT ID,NAME,NORMALPRICE,MEMBERPRICE FROM T_PRODUCT WHERE 1 LIMIT 10";
30 conn = DB.getConn();
31 res = DB.getRs(conn, selectSql);
32 while(res.next()){
33 dataMap.put("id", res.getString("id").trim());
34 dataMap.put("name", res.getString("name").trim());
35 dataMap.put("normalprice", res.getString("normalprice").trim());
36 dataMap.put("memberprice", res.getString("memberprice").trim());
37
38 configuration.setClassForTemplateLoading(this.getClass(), "/template"); // FTL文件所存在的位置
39 Template template = configuration.getTemplate("Product.ftl");
40
41 File outFile = new File("D:/temp/"+ res.getString("name").trim().replaceAll("/", "") +".doc");
42 Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
43 template.process(dataMap, out);
44 out.close();
45 }
46 DB.close(res);
47 DB.close(conn);
48 } catch (Exception e) {
49 e.printStackTrace();
50 }
51 }
52
53 public static void main(String[] args) {
54 WordTest test = new WordTest();
55 test.createWord();
56 }
57 } a. 代码数据库为 mysql ,将查询到的数据,动态填入到wod 中;
b.template.process(),接受一个 Map 和 输入流做为入参,Map 既是你需要动态生成到 doc 里面的数据,字段名必须与你在 .ftl 里面定义的一致;
c. 我觉得数据的来源可以很多,程序计算的结果,数据库存储的数据,页面点击的数据.........
d. 如果你想利用这段代码,需要有一个 .ftl 文件,并且在你的项目 src 目录下面新建 template 目录;
e.我不知道怎样把 .ftl 文件上传上来,如果需要做例子的,请在下面留言,我发给你。
Java ofd文档属性
转载文章标签 Java ofd文档属性 java xml FreeMarker 文章分类 Java 后端开发
上一篇:quartz任务调度监控
下一篇:java程序没有日志直接宕机了
-
制作python免安装
2、下载pip(pip还是比较常用的,建议安装) 下载地址:pip · PyPI 3、安装pip并且配置环境变量 1)解压下载好的python-3.8.5-embed-amd64.zip文件到你想要放的目录 &
制作python免安装 服务器 python 免安装 根目录