在某些状况下,业务需求须要实现不一样的用户登陆系统,打开同一个文件(没必要同时打开),能够编辑的区域不同,每一个人都有属于本身的编辑区域。web
解决思路:code
利用PageOffice能够实现这样的效果。PageOffice有一个功能就是操做数据区域,不但能够给文件中的数据区域(“PO_”开头的书签)赋值,还能够设置只读模式打开文件的时候哪些数据区域为可编辑模式。在打开文件以前先获取当前登陆用户的权限,而后根据这个用户的权限来设置这个用户打开文件以后,哪些数据区域是能够编辑的。orm
实现方式:对象
WordDocument doc = new WordDocument(); DataRegion dr1 = doc.openDataRegion("PO_xx"); dr1.Value = "张三"; //这句代码不是必须的 dr1.Editing = true; //容许这个数据区域编辑 DataRegion dr2 = doc.openDataRegion("PO_yy"); dr2.Value = docCause; dr2.Editing = false; //禁止这个数据区域编辑 …… poCtrl1.webOpen("doc/template.doc",OpenModeType.docSubmitForm, "张三");
用提交模式打开文件,这样文件是只读的,只有设置了Editing=true的数据区域能够编辑。文档
PageOffice中的概念“数据区域 (DataRegion)”:在PageOffice的概念里“PO_”开头的书签被称为数据区域(DataRegion),用“PO_”开头来命名书签只是为了防止和用户本身的书签有冲突。it
DataRegion属性中的其中两个属性是:io
OpenDataRegion("PO_Name").Value = "XXX";
OpenDataRegion("PO_Name").Editing = true;
这个Editing属性是此次使用的重点,实现不一样的人编辑word文档中不一样的编辑区域的关键是利用word中的书签去标记编辑区域(数据区域),而后用数据区域的Editing属性去控制这个区域是否是能够编辑。登录