PageOffice实现Word文档编辑区域控制

在某些情况下,业务需求需要实现不同的用户登录系统,打开同一个文件(不必同时打开),可以编辑的区域不一样,每个人都有属于自己的编辑区域。

解决思路:

利用PageOffice可以实现这样的效果。PageOffice有一个功能就是操作数据区域,不但可以给文件中的数据区域(“PO_”开头的书签)赋值,还可以设置只读模式打开文件的时候哪些数据区域为可编辑模式。在打开文件之前先获取当前登录用户的权限,然后根据这个用户的权限来设置这个用户打开文件之后,哪些数据区域是可以编辑的。

实现方式:

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_”开头来命名书签只是为了防止和用户自己的书签有冲突。

DataRegion属性中的其中两个属性是:

  • Value: 给数据区域赋值,举例:比方说word文件中有一个书签为:PO_Name,那么使用WordResponse对象给这个书签赋值:
OpenDataRegion("PO_Name").Value = "XXX";
  • Editing: 设置这个数据区域是不是可以编辑。设置文件打开后书签PO_Name所在的位置可编辑:
OpenDataRegion("PO_Name").Editing = true;

这个Editing属性是这次使用的重点,实现不同的人编辑word文档中不同的编辑区域的关键是利用word中的书签去标记编辑区域(数据区域),然后用数据区域的Editing属性去控制这个区域是不是可以编辑。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值