word替换原理:通过顺序查找word模板中的特殊字符标记,找到一个或多个就替换出响应的值,而表格的替换或者说生成是根据word中表格定义的序列来定位查找的,比如第一个表格的序列就是0,以此类推1,2,3...,所以我们知道了响应的替换查找原理之后,就可以开始下面的标签定义了。
通过前面的XML标签对应,那么word标签也必须和xml相对应。
word模板定义主要包含以下几个内容:
一是:单个标签的定义,比如:在word中某个地方,定义一个标签,所谓标签就是XML中自定义的field中的key,我默认以$开始$结束,
例如:
系统名称: $system_name$
被测单位: $ent_comany_name$
二是:表格标签的定义,表格的定义不需要在表格中每列都定一个filed,它是通过自动匹配的方式来查找的,所以顺序是必须要正确的。我们只需要定义表格的样式头和内容的样式就可以,通过后台自动匹配而得到每列的值,并会不断的增加表格的行数,同时在后台HashMap中的Key格式为"table$R@N",以“table”开头,其中:R代表从表格的第R行开始替换,N代表word模板中的第N张表格
例如就这样定义好就行了:
姓名 | 性别 | 年龄 | 成绩 |
| | | |
三是:图片标签的定义,其实图片的定义和单个标签的定义是一样的,只不过是在我们的定义过程中,加了一个约束或者说特殊标记,比如要在word中某个位子插入统计图,那么就需要和XML中定义的dataSet的name属性相同,如上面定义的统计图dataSet name="image$zhcjfxldt" 那么我们就需要在这里写成image$zhcjfxldt 这样就能匹配上,这个是针对统计图,还有一种是直接从数据库中查询出来的,那么这种就直接对应field中的key就行了,所以在定义XML的时候,如果你知道那是要展示图片的,定义成以“image$” 开头的,这样也是为了整体的统一和后台好解析。
四是:WORD嵌入另外一个word中的内容:那么word标签的定义标签为: "soword$xx",以“soword”开头。
(未完待续)