freemarker模板生成word文档踩坑记录
在使用freemarker的过程中遇到的问题:
1.报错:
Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> tableTemplate.secTitle [in template "excel转word.xml"
解释:freemarker.core.InvalidReferenceException无效的引用异常tableTemplate.secTitle存在空或者丢失
解决办法:
a.先查看map中是否有添加secTitle
b.如果有添加查看是否有可能存在值为null的,需要判断null,可以在存入map时判断给予""空字符串也可以在xml中判断${(tableTemplate.secTitle)!""}
2.word另存为xml时,模板的空格会被去掉
<w:t xml:space="preserve"></w:t>这个空格被去掉了,但xml:space="preserve"又是保证空格不会被去除,所以只需要在xml中重新加上空格就行了。
3.若替换符的内容包含<,>,& 这三种符号,则会出现Word打不开
str=str.replaceAll("&", "&");
str=str.replaceAll("<", "<");
str=str.replaceAll(">", ">");
4.有时候表格会超出word文本,只需要在表头添加<w:tblLayout w:type="fixed"/>,就不会自动扩充了,固定每列的宽度
freemarker模板生成word文档踩坑记录相关推荐
- 使用freemarker模板生成word文档
项目中最近用到这个东西,做下记录. 如下图,先准备好一个(office2003)word文档当做模板.文档中图片.姓名.性别和生日已经使用占位符代替,生成过程中将会根据实际情况进行替换. 然后将wor ...
- Java使用FreeMarker自动生成Word文档(带图片和表单)
Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...
- freemarker根据模板生成word文档,换行
freemarker根据模板生成word文档,其它地方已经说的非常清除了,在此简单再说以下. 1.制作word模板,另存为xml文件.在此我另存为的时windows xml,它和windows 200 ...
- 使用FreeMarker自动生成Word文档
使用FreeMarker自动生成Word文档 获取文件路径 创建一个word文档,然后再文档中在文档中写标识,对应代码中的map数据 2.将word转为xml后缀文件,再转为.ftl文件 3.保存路径 ...
- 使用word模板生成word文档的各类方案
使用word模板生成word文档的各类方案 生成word的各种方案 word另存xml进行后续处理 2003版本word(.doc)的xml处理并生成word 2007版本word(.docx)的xm ...
- 根据标准word模板生成word文档类库(开源)
前言 最近因项目需要要自定义标准word模板,并以编码方式操作word模板.填充数据和生成word文档,于是自己写了条小"内裤"来实现这个功能.该"内裤"只 ...
- JAVA实现模板word文档导入,Java依据word模板生成word文档之后台解析和实现及部分代码(一)...
Java根据word模板生成word文档之后台解析和实现及部分代码(一) 后台主要工作是解析XML定义的标签文件,并获取到数据集,放入到Map中,然后调用Jacob.jar中提供的相关方法来实现替换. ...
- Android 使用模板生成Word文档,支持手机直接查看word
最近在项目工作中,碰到一个很棘手的需求,说是要在手机端根据模板生成word文档,而且不借助第三方的软件可以查看word文档,一开始听这个需求差不多蒙了,这要怎么做,为什么不把生成word文档这个工作放 ...
- PHP 使用word模板生成word文档示例
<?php namespace Home\Controller; use PhpOffice\PhpWord\TemplateProcessor; use Think\Controller; c ...
最新文章
- JavaScript instanceof 运算符深入剖析
- redis从入门到实践
- c 语言 string类型转换,用标准c++实现string与各种类型之间的转换
- 三星gtn8010安卓7_三星Galaxy Note 10.1 N8010 最后的救赎 Andorid 5.0.2 ROM
- spring boot添加swagger步骤
- array 前端面试题_web前端开发面试题汇总
- ahci模式下无法启动Linux,电脑AHCI模式无法开启是怎么回事?
- python的浮点数_Python中整数和浮点数
- dns遭到劫持_关于网站pr劫持的问题,PR劫持是如何实现的呢?
- html,实现心动的表白代码
- qq第三方登录所需appid
- 根据点、旋转轴、旋转角度,计算点旋转之后的位置
- php使用Yar实现RPC调用
- css 单行space-between左右布局,左边元素文字过长显示省略号
- java哪几种运算符_java运算符有哪些
- 北漂程序员一天的生活
- FFmpeg 出现错误 Invalida data found when processing input
- 刘慈欣,王晋康,何夕著《星际远征》
- 通灵股份在深交所上市:总市值增至约74亿元,预计全年增收不增利
- JS加密解密对于asp.net解密加密