Office word excel电子表格在线编辑的实现方法

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,来打开,修改服务器上的文档. web

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( "没法打开文档." );
        }    
    }
原文来自:http://www.6excel.com/doc/20032