Office文档在线编辑的实现之一

因为项目的关系,研究了一下Office的在线编辑功能,写出来共享一下。

Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件。

IIS(6.0)支持webdav,这在IIS管理器的web服务扩展中可以看到.利用IIS作为webdav的服务器端,可以很容易的实现office(word,excel等)的在线编辑.

可以简单的实验一下:

确保IIS的webdav扩展安装并被启用了,建立一个虚拟目录test,在其中放一个word文档a.doc,然后打开word, 文件->打开->输入word文档的访问url(http://localhost/test/a.doc),
修改一下文档内容,保存一下,发生了什么? 文档被保存到服务器上了.

在IE中,可以通过js创建Word.Application,来打开,修改服务器上的文档.

wApp = new ActiveXObject("Word.Application.11");       
         
 wApp.Visible = true ;
         
 wApp.Documents.Open( url );
 
if( trackRevisions ){ //可以实现痕迹保留呢
      wApp.ActiveDocument.TrackRevisions = true ;
      wApp.ActiveDocument.ShowRevisions = false  ;
 }else
 {
      wApp.ActiveDocument.TrackRevisions = false ;
      wApp.ActiveDocument.ShowRevisions = false  ;           
}      
           
wApp.ActiveDocument.Application.UserName= Global_CurrentUserName;
另外,安装office时,会同时按装一个ActiveX组件:Sharepoint.OpenDocuments,可么用此组件来激活word,编辑服务器上的文档:

var __OpenDocuments = null ;
     
     function Document_Edit2( url )
     {
         if( __OpenDocuments == null )
         {
             try{
              __OpenDocuments = new ActiveXObject("SharePoint.OpenDocuments.3"); //for office 2007
             }catch(e){} 
            
             if(  __OpenDocuments == null || typeof(__OpenDocuments) == "#ff0000" )
             { 
                 try{
                  __OpenDocuments = new ActiveXObject("SharePoint.OpenDocuments.2"); //for office 2003
                 }catch(e){}               
              }
               
             if( __OpenDocuments == null || typeof(__OpenDocuments) == "undefined" )
              {
               alert( "请安装Word(2003或更高版本)" );
               return ;
              }
             
         }           
          // openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");, "Word.Document"            
          //openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/");             
         
         var result = __OpenDocuments.EditDocument( url , "Word.Document" );
         
         if( result == false )
         {
             alert( "无法打开文档." );
         }    
     }

可以看到,基于IIS的webdav支持,可以非常简单的实现office文档的在线编辑, 但有一个问题:这样,文档是存放在文件系统上,我们很多系统中,
文档是存放在数据库中的,这样一来,如何实现呢???

I tried a lot and found the solution. It will be in the next article .

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值