java实现导出内容不固定的word文档
之前遇到过一个需求,需要导出一个word的周报,周报的内容是可变,然后网上找了下方法,下面摘抄一种方便的实现手段:
Java用freemarker导出word
一、模板的制作
先用Word做一个模板,如下图:
(注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepad++,我这里用notepad++,主要是有高亮显示,和元素自动配对,效果如下:
上面黑色的地方基本是我们之后要替换的地方,比如xytitle替换为${xytitle},对已表格要十分注意,比如选择题下面的表格,我们可以通过<w:tr>查找来定位,一对<w:tr></w:tr>代表一行,也就是一条记录(一道题),我们这里要用一对<#list></#list>来将其包括,以便后续填充数据,具体可参照Freemarker页面语法,例如这里选择题,我们是两行为一条记录,所以要<#list></#list>要包括两行,形如:<#list table1 as plan1><w:tr>题号 题目</w:tr><w:tr>选项</w:tr></#list>,然后在这其中找着对应的xzn,xztest,ans1,ans2,ans3,ans4替换为${plan1.xzn},${plan1.xztest},${plan1.ans1},${plan1.ans2},${plan1.ans3},${plan1.ans4},注意这里的table1及plan1命名,table1后续填充数据要用到,其他的替换同理操作,得到效果如下:
保存后,修改后缀名为ftl,至此模板制作完毕。
二、编程实现
这里用到了freemarker-2.3.13.jar包,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
然后是准备数据调用就行,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
|
注意上面map中的key必须和模板中的对应,否则会报错。
三、项目导入
下载附件后,解压后,看到如下目录
将Document项目导入eclipse即可。导入后的效果如下:
会在e盘生成文件
四、运行效果
打开生成的outFile.doc则看到如下的样子:
五、freemarker语法
Freemarker页面语法:http://blog.csdn.net/thismonth/article/details/5194982
转载:https://www.cnblogs.com/demodashi/p/8458097.html
java实现导出内容不固定的word文档相关推荐
- 使用FreeMarker导出固定格式word文档
使用FreeMarker导出固定格式word文档 一.下载FreeMarker的jar包 下载地址:http://freemarker.org/freemarkerdownload.html,导入项目 ...
- Java 导出数据库表信息生成Word文档
一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看生成word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导出数 ...
- java 导出word换行_Java 导出数据库表信息生成Word文档
一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...
- java检查word文档内容缺失_恢复Word文档内容需要了解的知识
Word文档是每一位电脑用户都有机会接触的文字编辑工具,它对我们的生活有着重要影响,不管是在学习还是在工作上.如果我们遇到了Word文档内容丢失或者Word文档内容乱码的情况,应该怎么解决呢?请继续往 ...
- 导出数据库表信息生成Word文档(数据字典)
平时多积累一些好工具,才能提高工作效率,早点下班 1. 关键字百度 Java 导出数据库表信息生成Word文档 gitee地址 2.拉取,运行 2.1 idea识别.导入maven工具 2.2 下载完 ...
- Python实现某du内容下载, 保存到word文档
前言 今天来点不一样的 用Python实现某du文库vip内容下载, 保存到word文档 前期准备 环境使用 python 3.8 pycharm 模块使用 requests >>> ...
- 复制一个Word文档的部分或全部内容到另一个Word文档
我最近喜欢折腾Office软件相关的东西,想把很多Office软件提供的功能用.NET来实现,如果后期能把它用来开发一点我自己的小应用程序那就更好了. 扯远了,回到正题.复制文档内容这个功能太常见啦, ...
- 【Java wrod文档导出 返回浏览器下载读取word文档】文档流转IO流
在工作当中会有很多奇奇怪怪的需求 比如把数据库数据 导出word文档,在此之前发表过一篇 导出ecxle表格的文章,经过查询资料 发现还是很容易实现的 . 我们一共可以分为两个部分 一.把数据库的数据 ...
- Java Itext+jfreehart 导入含有图形的word文档
今天下午没事,就整合了项目中的导入word文档的代码,因为业务要求要把数据可视化,所以选择了就freechart插件作为画图工具,导入word文档选择的Itext,闲话不多说,直接上代码: jar包: ...
最新文章
- 侧链,驱动链,和根链的双向锚定设计
- 服务器log文件清理,服务器日志切割清理工具(LogCutter)
- ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
- 大数据WEB阶段 (十)Response、ServletConfig、ServletContext、资源跳转三种方式
- php类知识 self $this都只能在当前类中使用
- 拿下微软、Google、Adobe,印度为何盛产科技圈 CEO?
- android 联系人中,在超大字体下,加入至联系人界面(ConfirmAddDetailActivity)上有字体显示不全的问题...
- Python 39 数据库的数据类型
- Android xml manifest属性详解
- 如何写SCI论文的摘要
- 第一门慕课计划——在广东海洋大学推广MOOC学习
- 跑步机行业研究及十四五规划分析报告
- 牛客网音短视频类sql-4
- <RTL coding的艺术> non-constant expression引出的思考
- 老弟,来了?VUE+Nuxt.js+Koa+Vuex入门教程(一)仿写一个cnode网站
- 合并两个有序数组,合并之后保持有序
- CSIRO Detects Raw Materials Used in the Ma IoT PLC accessking of the First Stars
- Excel学习——制作周报
- Debian系统安装
- 图像一阶倒数和二阶导数的区别与联系
热门文章
- Sass 你了解了吗
- 共享打印机的客机显示脱机怎么解决?
- 序列到序列模型(一)(基本模型,RNN Search,注意力机制)
- python裁剪不规则区域_Python实现不规则图形填充的思路
- ps因计算机限制打不开,电脑突然坏了只有打不开PS这是什么原因在线 – 手机爱问...
- PHP 实现精确统计在线人数功能
- 2022年版中国共享单车市场现状调研及投资前景预测报告
- java砍价源码_(JAVA)仿拼多多砍价算法
- 3秒钟解决windows字符间距变大,输入字母间距变大问题
- Between 的开始日期和结束日期是同一天没有查询结果,附SQL server数据库的日期时间格式转换大全