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

    技术2022-05-11  62

    因为项目的关系,研究了一下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)  ==   " undefined "  )            {                  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文档的在线编辑, 但有一个问题:这样,文档是存放在文件系统上,我们很多系统中, 文档是存放在数据库中的,这样一来,如何实现呢???  

    最新回复(0)