pageOffice 环境变量替换
什么是标签:
DataTag在PageOffice的概念里称为:数据标签。这一功能是为了方便向Word文件中动态填充多个相同字段而存在的。
在向Word中动态填充数据时,如果多个位置都需要填充同一个数据就不能使用数据区域,因为数据区域的本质是书签,Word的同一份文件中的书签名是唯一、不能重复的。
在模板中添加数据标签只需要在Word文件中插入一些特殊文本字符串即可,可以是任意的有效字符(如“【时间】”、“{姓名}”、“性别”、“地址”、“aa”、“bbcc”、“123”等等)为标记。通过程序可以对数据标签进行控制操作:
后端的pageoffice 预览html
后台预览接口
- Java 代码
//标签替换 定义WordDocument对象
WordDocument doc = new WordDocument();
//定义DataTag对象
DataTag deptTag = doc.openDataTag("{部门名}");
deptTag.setValue("技术");
DataTag userTag = doc.openDataTag("{姓名}");
userTag.setValue("李四");
DataTag dateTag = doc.openDataTag("【时间】");
dateTag.setValue(new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString());
poCtrl.setWriter(doc);
标签替换的规则:在load的时候,获取前端传的参数(功能code,主键id,功能表名),获取功能的code,去模板库里面查找模板,然后再获取子功能集合里面的标签对应关系,这个对应关系可以设置为:{USERNAME}:USERNAME,这样在替换的时候,就可以零活的进行处理。
比如:
//获取模板库
List<DynaBean> mobank = serviceTemplate.selectList("模板库","");
//业务bean
DynaBean bena = new DynaBean();
for(DynaBean mob : mobank){
//获取标签
String biaoqian = mob.getStr("key");
//获取字段的code
String valueKey = mob.getStr("value");
//在业务bean里面获取真实的业务值
String value = bena.getStr("valueKey");
DataTag userTag = doc.openDataTag("biaoqian");
//set进去
userTag.setValue(value);
}
poCtrl.setWriter(doc);
最后编辑: 呼丽华 文档更新时间: 2024-08-21 10:58 作者:呼丽华