如何控制不同的用户只能编辑同一word文档中的自己有权限编辑的区域?

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:05:55
我用的是asp.net c#开发的bs系统。同一篇word做的公文要流转到不同的部门,每个部门只能填写修改本部门在这篇公文里指定区域的内容,不能动其他部门的内容,又要能看到其他部门的内容。这就是客户的要求,还要去必须在word里做。不能用其他变通的方法!请高手给点思路

第一种方法:在后台添加Word的类型库引用,自动化调用Word。缺点是:你要了解Word的VBA接口,对象层次,调用方法,还要给asp.net添加模拟交互账户,还要处理word死进程问题等等。微软明确指出不建议在服务器端自动化Office,参考http://support.microsoft.com/default.aspx?scid=kb;zh-cn;Q257757

第二种方法:采用SOAOffice中间件。SOAOffice是微软OFFICE的专业Web中间件。服务器端不需要安装运行Office软件,SOAOffice 完全克服了传统利用Office服务器端自动化技术存取文档数据的种种弊端和缺陷。SOAOffice还能在浏览器里提供完全Office功能的在线编辑功能。
---------------------------------------------------------------------------
采用第二种方法,以SOAOffice中间件作为平台,编写简单的调用代码实现本文的用户需求。

实现方法:

假设用户UserA只能编辑公文test.doc中的a区域,用户UserB只能编辑test.doc中的b区域。

首先打开test.doc文档,选择a区域,添加书签,命名为SOA_a;选择b区域,添加书签,命名为SOA_b。为避免和用户其他书签名称冲突,在SOAOffice里数据区域名称都是以SOA_为前缀的书签名称。保存test.doc。

新建EditWord.aspx页面,在Page_Load里编写代码:

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Session["UserNam