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

原创 2007年09月11日 20:51:00

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

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

上篇文章 http://www.cnblogs.com/jianyi0115/archive/2007/03/16/677712.html 讲述了如何通过iis的webdav支持实现客户端的offi...
  • glt3953
  • glt3953
  • 2013年10月16日 15:59
  • 1031

那些开源的php Office,快捷得在线编辑预览文档

在Office 15即将发布之际我又发现了那些在开源的PHPoffice,一般的程序员、设计师他们距离Office办公套件也是蛮遥远的,但是如果真的要用了总不可 能去下载一个吧即使是WPS也需要时间,...
  • ylhalo
  • ylhalo
  • 2017年06月02日 16:31
  • 1252

jsp+java用pageoffice在线编辑office文档

首先你要有三个东西:sealsetup.exe、pageoffice.jar和posetup.exe,如果没有,就去     http://www.zhuozhengsoft.com/download...

Office Online Server 文档在线预览编辑【速成篇】

Office Online Server 文档在线预览编辑【速成篇】操作系统 Windows Server 2012 R2 部署 Office Online Server官方手册 参照文档 仅执行步...
  • ajaxtop
  • ajaxtop
  • 2017年05月10日 14:24
  • 2308

Office文档在线编辑控件包

  • 2011年10月17日 15:57
  • 222KB
  • 下载

JS实现Office在线编辑和浏览(实用)

今天在同事负责的项目中无意间看到一个新颖的功能,点击链接直接以word格式打开,然后感兴趣的追问了下实现方式,看了示例很简单,而且直接页面端js就可调用成功,效果很不错,目前遇到项目还没有类似的应用和...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Office文档在线编辑的实现之一
举报原因:
原因补充:

(最多只允许输入30个字)