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   作者:呼丽华