Word模板引擎使用指南

144153_KHrh_193624.png

144205_GGBi_193624.png

1.简介

    Docx模板是一个带标记的Word文档,模板引擎用数据替换这些标记生成新的Word文档。 

   这是一份文档,同时也是一个模板,后面的示例将会使用本模板。

        Word文档地址:http://www.xdocin.com/DocxEngine.docx

2.特点

  • 使用Word可视化编辑,操作简单
  • 标记语法简单易学
  • 文档样式100%兼容
  • 数据格式丰富
  • 基于云服务,无需安装维护

3.标记语法

   ${名称}

   前后标记符合必须是半角的,传入的数据会依照下面的规则自动识别:

4.识别规则 

  • 以“http:”、“https:”、“ftp:”、“data:”开头的文本表示网络资源,自动识别为图片或文档
  • 以“text:”开始的数据,去掉“text:”后识别为文本
  • 包含回车符的值识别为多行文本
  • 表格、文本框的可选文字-标题标记识别为CSV列表数据
  • 其他识别为单行文本

5.文本标记

文本标记在文档中直接输入。

示例

单行文本: ${单行文本}

多行文本: ${多行文本}

图片: ${图片}

文本框中的图片:

  

   当文本框中只有一个图片时,图片会根据文本框的大小做大小适应

HTML: ${HTML}

URL地址: ${URL地址}

网络文档: ${文档}

6.【可选文字】-【标题】标记

图片

设置

插入示例图片,打开【设置图片格式】,在【可选文字】-【标题】中输入标记,如下图:

141554_rrPa_193624.png

示例

表格

设置

插入表格,打开【表格属性】对话框,在【可选文字】-【标题】中输入标记,如下图:

141554_iPMX_193624.png

通过设置【重复标题行】定义表头,表头可以是多行,如下图:

141554_5z8G_193624.png

表头下的第一行是数据行,数据行会根据传入的数据条数,重复显示。

如果不设置表头,第一行就是数据行。

在数据行中输入标记,标记的名称是列表的字段名,也可以引用全局的标记。

数据行下是表尾,可以没有。

如果无数据传入,表格不显示。

示例

名称

信息

徽标

市值(亿美元)

${名称}

 

${市值}

公司信息

文本框

设置

插入文本框,将文本框的【位置】设置为【嵌入文本行中】,如下图:

141554_gv52_193624.png

打开【设置形状格式】,在【可选文字】-【标题】中输入标记,如下图:

141554_jWvY_193624.png

在文本框中输入标记,标记的名称是列表的字段名,也可以引用全局的标记。

数据行会根据传入的数据条数,重复显示。如果无数据传入,文本框不显示。

示例

7.调用

Java

程序库

   http://www.xdocin.com/XDocService.jar

示例

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import com.hg.xdoc.XDocService;

public class DocxEngineDemo {
	public static void main(String[] args) {
		Map<String, Object> params = new HashMap<String, Object>();
		try {
			params.put("单行文本", "你好!");
			params.put("多行文本", "一行\n两行\n三行");
			params.put("图片", "http://www.xdocin.com/xdoc.png");
			params.put("HTML", "<html><li>张小三</li><li>李小四</li><li>王小五</li></html>");
			params.put("URL地址", "text:http://www.baidu.com");
			params.put("文档", "http://www.xdocin.com/xdoc?_func=hi&_rformat=html");
			params.put("公司", "名称,徽标,市值\n"
					+ "腾讯,http://www.logodashi.com/OldPic/635467462172730000.gif,3000\n"
					+ "阿里巴巴,http://www.logodashi.com/OldPic/635521864517328000.jpg,2900\n"
					+ "百度,http://www.logodashi.com/OldPic/635467448562000000.gif,600");
			new XDocService().run("http://www.xdocin.com/DocxEngine.docx", params,
					new File("d:/DocxEngineResult.docx"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

注意:模板为本地文件或URL。

Web

示例

<script type= "text/javascript"  src= "http://www.xdocin.com/xdoc.js" ></script>
<script type= "text/javascript" >
XDoc.run( "http://www.xdocin.com/DocxEngine.docx" ,  "docx" ,
{ "单行文本" :  "你好!" , "多行文本" :  "一行\n两行\n三行" , "图片" :  "http://www.xdocin.com/xdoc.png" ,
"HTML" :  "<html><li>张小三</li><li>李小四</li><li>王小五</li></html>" ,
"URL地址" :  "text:http://www.baidu.com" , "文档" :  "http://www.xdocin.com/xdoc?_func=hi&_rformat=html" ,
"公司" :  "名称,徽标,市值\n"
  +  "腾讯,http://www.logodashi.com/OldPic/635467462172730000.gif,3000\n"
  +  "阿里巴巴,http://www.logodashi.com/OldPic/635521864517328000.jpg,2900\n"
  +  "百度,http://www.logodashi.com/OldPic/635467448562000000.gif,600"
},  "_blank" );
</script>

注意:模板地址需要外网能访问,或者为DataURI。

http

调用地址

http://www.xdocin.com/xdoc?_func=run&_format=docx&_xdoc=模板&标记名称=标记值

   模板、标记名称、标记值必须用UTF-8编码,参数比较多时,请以POST方式调用。

注意:模板地址需要外网能访问,或者为DataURI。

转载于:https://my.oschina.net/u/193624/blog/1572384

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值