导出WORD或WPS格式文档

来自企业管理软件文档中心
2019年3月29日 (五) 17:25Nathan讨论 | 贡献的版本

跳转至: 导航搜索

简介

  • 在使用云表的过程中,我们都知道可以将表单或总表导出为Excel表格,但有时我们还需要将表单导出为word文档(如系统中的公告、合同表单或参考资料等),根据使用者的需求,云表开发了将表单导出为word文档的功能。

使用说明

  • 具体方法为,在word文档中,建立与云表模板中相同的数据项,并生成xml文件。此xml文件为导出word文档的模板样式。通过此xml模板,可以导出无数个相同格式的word文档。

制作导出Word样式模板

  • 用word生成XML文件,放置在D:\Latosoft\LatoServer\Data\formStyle目录下。
  • Word文档填写方法:

普通标签

  • 普通标签分三部分,分别是标签开始,标签字段,标签结束。
  • 1.标签开始
  • 使用英文的$[作为一个标签的开始;
  • 2.标签结束
  • 使用英文的$]作为一个标签的结束,一个标签的开始必须带有结束标签,不然该标签不是一个完整的标签,生成word是无法绑定数据源的;
  • 3.标签字段
  • 标签开始和标签结束之间的就是标签数据项,该字段需要与表单定义的数据项名称一致;
  • 如:$[姓名$] 他对应了云表模板中“姓名”数据项。

图片标签

  • 标签格式与普通标签一致,也是有标签开始,标签数据项,标签结束,不过在标签数据项前面有“[图片]”这个标识,如:$[[图片]合影$]

其中,“合影”就是标签数据项,“[图片]”只是特殊标识,让系统判断该数据项是图片数据类型;同时,该图片标签后面需要上传一张图片,用于占位及控制大小,注意图片环绕形式只能是嵌入型,如:

  • $[[图片]合影$]
NDCWD1.png
  •   
  •   
  •   
  •   
  •   
  •   
  •   

循环标签

  • 循环标签基本定义与图片标签相似,只是循环标签还需要有“循环结束”标签进行配套使用,标签数据项用明细表名称,被括起来的普通标签数据项需要前面加明细表的名称+英文的句号(点.),如:$[[循环]明细表1$] $[明细表1.标题$] $[[结束循环]明细表1$]

表格行循环

  • 如果需要将明细表的内容在表格的行进行循环显示,则将两个标签分别放在表格数据行的第一个格子及最后一个格子,如:
NDCWD0.png

段落循环

  • 如果想实现某段落或者页的循环,则将两个标签分别放在需要循环的段落的前和后两个位置,如:
  • $[[循环]明细表1$]
  • 用户名: $[明细表1.姓名$]
  • 日期: $[明细表1.日期$]
  • $[明细表1.正文内容$]
  • $[[结束循环]明细表1$]

高级标签

  • 这里提供某些特殊数据类型的特殊用法,该高级用法遵循freemarker 标签语法,但是需要在高级标签外面加[$和$]作为开始和结束,以下是一些常用的高级用法,其他更多用法可参考https://www.cnblogs.com/hwaggLee/p/4541586.html。

日期类型字段转换显示

  • 当数据项的数据类型是日期类型,如果需要指定显示精度,可以在数据项后面加“_对象”,再配合标签格式进行定制化显示:
  • 如:$[最后更新时间_对象?string(“yyyy-mm-dd HH:mm:ss zzzz”)$]
  • 效果:2017-12-23 14:12:20 中国标准时间

数字类型数据项转换显示

  • 当数据项的属性是数字类型,如果需要指定显示精度,可以在数据项后面加“_对象”,再配合格式化标签进行显示;
  • 数字格式化插值可采用$[#{字段名称;format}$]的形式来格式化数字,其中format可以是:
  • mX:小数部分最小X位
  • MX:小数部分最大X位
  • 如:$[#{浏览次数;m2}$]
  • 效果:123.00

真假类型数据项转换显示

  • 如果数据项属性是判断类型,可以分别对真假分别显示不同内容
  • 如:$[是否打印?string(“已打印”,“未打印”)$]
  • 效果:已打印

判断语句

  • 如果需要对模板某部分内容进行判断是否显示,可以用以下if标签进行判断,以下是if标签的两种常用用法:
  • 判断是否有值,加两个英文的?在需要判断的数据项后面,如果需要判断是否为空,则在数据项前面再加一个!,如:
  • $[[#if !正文内容??]$]
  • 这个是没有正文内容的
  • $[[/#if]$]
  • 判断字符串相等与否,可以使用==和!=判断符号:
  • $[[#if 是否合影 == “是”]$]
  • 这个是有合影的
  • $[[/#if]$]
  • 模板内容举例
NDCWD2.png
  • 注意事项:
  • 1.标签开始$[和标签结束$]这两个字符,必须要同一字体,中间不能有空格,而且需要同时录入,如果生成word之后,这两个标签标记没有被数据源替换,请重新键盘录入;
  • 2.图片标签后面必须要上传一个图片,并且图片只能是嵌入型,该模板里面的图片最后是会被替换的;
  • 3.明细表数据要显示出来,必须得放在循环标签内;
  • 4.如果标签写法不合法的时候,生成word时候会出现错误,理论上会提示出错的标签是哪个,但是如果没有则需要用排除法自行确认;
  • 5.标签里面的中文“”‘’&<>符号会自动替换为英文的",如果不想被替换,需要在前面加\即可;
  • 6.模板word文档做好之后,office word需要另存为“Word 2003 XML 文档(*.xml)”格式,WPS另存为“XML 文件(*.xml)”格式,并上传到表单的模板中,其他格式无法作为模板文件,请注意格式;
  • 7.暂时不支持换行的多行文本及富文本内容;

custom.conf文件配置

  • 配置custom.conf文件,custom.conf文件在安装目录D:\Latosoft\LatoServer\Data\conf中(需要注意的是,如果在D:\Latosoft\LatoServer\Data文件夹中没有conf文件夹,那么需要在Data文件夹中新建一个conf文件夹,然后再新建一个文本文档,命名为custom.conf)
  • custom.conf文件配置方法:
  • (要导出为word文档的表单所在应用空间ID).(云表空间中导出word的模板名称)=[{"styleName":"(样式名称,可自定义)","url":".(样式文件名称,即生成的xml文件名称).xml"},{"styleName":"(样式名称,可自定义)","url":"(样式文件名称,即生成的xml文件名称).xml"}]
  • 样式名称和样式文件名称各填写一个就行,此例中表示可以有两种样式。

配置完成后需重启服务器

NDCWD3.png

云表空间模板设置

  • 1.在要导出word文档的模板-填表公式中,新建工具栏按钮,按钮标题设置为“导出word文档”;
  • 2.添加公式:打开表单
NDCWD4.png
  • 表单模板:使用需要导出信息的模板(即本模板);
  • 样式名称:就是我们写的自定义配置文件里面的styleName(样式名称);
  • 表单ID:当填写“本表单.sysFormID”时,表示导出当前表单,也可以用其他方式填写,如填写具体的表单ID数值,或根据数据项的内容。
  • 例:我们在生成的xml文件中设置数据项为:
  • $[标题$]
  • $[作者$]
  • $[内容$]
  • 那么在云表模板中也要定义三个数据项,“标题”,“作者”,“内容” 这样在表单中“标题”数据项填入的数据,在导出WORD文档后,数据就会生成到word中$[标题$] 处,表单中“作者”数据项处填入的数据,在导出后会生成到word中 $[作者$]处,所有数据均是以此对应。

实例

  • 例如我们要将销售订单,导出为word文档。
  • 首先我们需要知道销售订单都有哪些数据项需要导出。
NDCWD5.png
  • 例如我们将表中的所有数据项的数据都导出为word文档。
  • 那面我们需要先建立一个word文档,将表单中的数据项以前文讲过的的填写方式列出来。
NDCWD14.png
  • 然后,将此word文档另存为.xml格式文件,命名为:销售订单。并放置在D:\Latosoft\LatoServer\Data\formStyle目录下。
NDCWD7.png
  • 配置custom.conf文件。我们首先找到D:\Latosoft\LatoServer\Data\conf这个目录(若没有conf文件夹,那么就手动建立一个文件夹,命名为conf)。然后以记事本(或文本文档)的方式打开custom.conf(若没有custom.conf文件,那么就手动建立一个文本文档或记事本,然后命名为custom.conf)。配置内容如下。
NDCWD8.png


  • 注:配置好custom.conf文件后,需要重新启动服务器。
  • 重启服务器后,进入云表系统中的销售订单模板。建立填表公式-工具栏按钮-选择打开表单。
  • 表单模板,选择“销售订单”,样式名称为“销售订单”(就是我们配置的custom.conf文件中的styleName(样式名称))。
  • 并选择根据表单ID进行匹配,匹配内容为:本表单.sysFormID(意思为导出当前表单)。
NDCWD9.png
  • 设置好后,保存模板,在总表中打开某张销售订单,点击刚刚建立的按钮,选择要导出到哪个文件夹,并填写导出word的文档名称。点击确定后,即可成功导出为word文档。
NDCWD16.png
NDCWD11.png
NDCWD17.png