DataTag这一功能,是为了方便向Word文件中动态填充多个相同字段而存在的。
在向Word中动态填充数据时,如果多个位置都需要填充同一个数据,例如要填充某个部门的员工信息表,每个员工信息中都有“部门”这一栏信息,且都是同样的部门名称,这时再使用DataRegion的方式向Word文件中添加多个不同的书签就显得太麻烦了。于是,PageOffice中就有了DataTag这一功能来实现这一效果。
DataTag的使用
- DataTag模版制作
DataTag模版的制作相对于DataRegion模版的制作来说要简单一些。DataRegion模版制作时需要插入特定的书签(以“PO_”开头),并且插入书签的方法也相对来说麻烦一点。而DataTag模版制作时,不需要插入书签,可以是任意的有效字符(如“【时间】”、“{姓名}”、“性别”、“地址”、“aa”、“bbcc”、“123”等等)为标记;而且插入DataTag也比较简单,可以直接在Word文件中想要插入DataTag的位置直接输入作为DataTag的有效字符即可。如图所示 - DataTag的使用、设置格式
填充数据到模板生成文件的最简单的一个方法就是用程序插入数据到模板中,若有需要,还可通过程序设置DataTag的Font属性来设置填充文本的格式。具体实现方法如下。
ASP.NET的实现代码:
PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
PageOffice.WordWriter.DataTag userTag = doc.OpenDataTag("{姓名}");//定义DataTag对象
userTag.Font.Color = Color.Red; //设置文本颜色:Red
userTag.Font.Bold = true;//字体加粗
userTag.Value = "李四";//赋值
PageOffice.WordWriter.DataTag dateTag = doc.OpenDataTag("【时间】");
dateTag.Font.Color = Color.Blue;
dateTag.Value = DateTime.Now.ToString("yyyy-MM-dd");
......
PageOfficeCtrl1.SetWriter(doc); //不要忘记此行代码
......
Java的实现代码:
WordDocument doc = new WordDocument();
DataTag userTag = doc.openDataTag("{姓名}");
userTag.getFont().setBold(true); //加粗
userTag.getFont().setColor(Color.GREEN); //文本颜色:GREEN
userTag.setValue("李四");//赋值
DataTag dateTag = doc.openDataTag("【时间】");
dateTag.setValue(new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString());
dateTag.getFont().setColor(Color.BLUE);
......
pCtrl.setWriter(doc); //不要忘记此行代码