1、添加freemarker.jar 到java项目。

2、新建word文档。

3、将文档另存为xml 格式。

4、将xml格式化后打开编辑(最好用notepad,有格式),找到需要替换的内容,将内容换为变量(${变量名})。

5、生成表格,包括动态列和动态行。其中columnList 是List格式的表头数据,datas 是List>格式的全部表格数据。

#list>

${cell}

#list>

#list>

6、生成图片。将xml文件中 中的数据替换成需要的图片的base64编码即可。

7、保存后,将文件后缀改为.ftl,放到java项目文件夹。生成word:

Map map = new HashMap();

map.put("变量名", 变量内容);

public static void createWord(Map map, String filePath) {

try {

Configuration configuration = new Configuration();

configuration.setDefaultEncoding("UTF-8");

configuration.setClassForTemplateLoading(TemplateToWord.class, "/com/cn/templates/");//模板所在文件夹

Template template = configuration.getTemplate("report.ftl");//根据名称加载模板

File outFile = new File(filePath);//生成新word文档

if (!outFile.getParentFile().exists()) {

outFile.getParentFile().mkdirs();

}

Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));

// 生成文件

template.process(map, out);

out.flush();

out.close();

} catch (Exception e) {

e.printStackTrace();

}

}

java生成word 可变表格_【java】Freemarker 动态生成word(带图片表格)相关推荐

  1. java利用freemarker动态生成word文档及动态表格

    这里写自定义目录标题 目标 准备 实现 处理模板 java实现 验证 目标 根据给定word模板,动态填充指定内容,并输出为新的word文档. 准备 1.模板: 准备一份目标格式的word文档,如:w ...

  2. java逆向生成代码有哪些_利用mybatis逆向工程生成代码

    在做项目过程中,当面对很多表时,手动编写Mapper.xml.Mapper.java和pojo无疑是要人命,还容易出错,导致对数据库操作时各种异常.这就陷入了写bug,改bug的旋涡. 针对这一痛点, ...

  3. java word模板替换多行_Java动态替换word模板的最佳实践

    poi-tl 基于word的模板渲染(替换)组件 对docx格式的文档增加模板语法,增加渲染模板的方便性,目前支持对段落.页眉.页脚.表格的文本.图片.表单渲染. 对于word模板替换,我们不仅要考虑 ...

  4. freemarker动态生成word、pdf文档(写入图片)

    需求:给出固定的word模板通过后台查询出的数据动态生成word文档 结果展示:列表中的数据就是动态生成的. 一.创建.ftl模板文件,(我这里就不详细展开了,直接粘贴ftl模板的代码) <!D ...

  5. Springboot中使用freemarker动态生成word文档

    文章目录 freemarker模板动态生成word文档 前言 准备 简单模板准备 <一> `word 2003` 新建`.doc` 模板 <二> 另存为`.xml` 文件,格式 ...

  6. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并

    [Java教程]Java基础之PDF文件的合并 0 2017-07-28 00:00:45 1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下:package com;i ...

  7. java对数字的处理_[java初探10]__关于数字处理类

    前言 在我们的日常开发过程中,我们会经常性的使用到数字类型的数据,同时,也会有众多的对数字处理的需求,针对这个方面的问题,在JAVA语言中.提供解决方法的类就是数字处理类 java中的数字处理类包括: ...

  8. java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发

    [Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...

  9. java类全路径简写_[JAVA] JAVA 类路径

    Java 类路径 类路径是所有包含类文件的路径的集合. 类路径中的目录和归档文件是搜寻类的起始点. 虚拟机搜寻类 搜寻jre/lib和jre/lib/ext目录中归档文件中所存放的系统类文件 搜寻再从 ...

  10. vue 嵌套表格组件_使用form-create动态生成vue自定义组件和嵌套表单组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 maker.create 通过建立一个虚拟 DOM的方式生成自定义组件 生成 Maker let rule = [ formCreat ...

最新文章

  1. 云服务器dns配置文件,linux服务器dns配置文件
  2. shell eval命令
  3. weblogic mime-type
  4. 判断js对象是否拥有某属性
  5. as点击发送广播_Apache Flink 中广播状态的实用指南
  6. 每天一道LeetCode-----括号匹配
  7. ubuntu14.04 LTS 搜狗输入法安装和不能输入中文的解决方法
  8. zookeeper命令
  9. 事务的四大特性和隔离级别
  10. 一周愣降900元!这款iPhone不值了?
  11. 【Java例题】2.5 温度转换
  12. python机器学习案例系列教程——聚类算法总结
  13. 机器学习基础算法23-XGBoost实践
  14. .Net MVC中设置默认启动为某区域的视图
  15. pandas 筛选出满足条件的行并赋值
  16. 如何把空间数据从CGCS2000转换到WGS84和BD09 ——JAVA语言实现
  17. web前端学习13-19(HTML常用标签)
  18. Flask + vue 前后端分离的 二手书App
  19. 《互联网时代》第二集·浪潮
  20. PS无法拖拽置入图片解决办法

热门文章

  1. 关于深度学习,可能是最容易读进去的科普
  2. 我整理了一些Python测试的库,看一下有没有你需要的库
  3. 解决IDEA src下的目录全部变灰无法运行
  4. 为什么ZMap用一个小时内就能扫遍整个互联网
  5. 怎样拍摄全景照片?全景图片拍摄流程
  6. HTML5学习之路(电影影评网)
  7. TerraBuilder 操作制作MPT
  8. V4L2视频驱动框架---meida_device管理模块简述
  9. 被全球过度炒作的Spotify敏捷部落制,连Spotify公司自己都不用
  10. 手机计算机怎么打出无限符号,Win7怎么用搜狗打无限符号|输入法打无限符号方法...