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

from : http://www.cnblogs.com/jianyi0115/archive/2007/03/16/677712.html

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

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

时间: 2024-08-01 20:18:55

[转]Office文档在线编辑的实现之一的相关文章

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

From:http://www.cnblogs.com/jianyi0115/archive/2007/07/15/818566.html 本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS,自己实现一个webdav的服务器端. 首先,我们简单了解一下webdav: webdav,中文可以翻译为网络分布式协作协议,它解决了http协议中一个问题:http无法实现版本和单访问控制. 什么是单访问控制呢?假设我们有一个页面编辑某条数据,

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://local

毕业设计 OFFICE文档在线考试系统 求大神帮助

问题描述 有没大神能代做一份毕业设计课题:OFFICE文档在线考试系统语言C#大致框架就是学生线下用WORD文档考试然后上传至网页通过老师上传的标准答案进行比对找对错价钱好商量详情联系QQ447446755 解决方案 解决方案二:紧急希望能帮助的大神速速与我联系解决方案三:你要的就是如何读取word,都不需要操作解决方案四:对呀,了解下如何读取word就行了解决方案五:如果你要代码的话我觉得你还不如去淘宝找,读word不知道怎么做的话看3楼的比较靠谱

Office文档在线预览

工具说明:通过传入文档的Web地址,即可进行Office文档的在线预览. 使用方式: 在http://office.qingshanboke.com地址后,通过url参数传入您想预览的文件路径. 如:/Default.aspx?url=http://office.qingshanboke.com/test.doc 完整地址: http://office.qingshanboke.com/Default.aspx?url=http://office.qingshanboke.com/test.do

利用XSL和ASP实现XML文档在线编辑

xml|在线 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务

cad文档在线编辑

问题描述 有什么办法可以实现到这样的文件管理系统:可以设置某个用户对某个文件的访问权限,用户通过客户端软件登陆服务器之后,可以在客户端打开某个文件并且在客户端的编辑窗口上根据用户权限对文件做相应的操作.这里有一点特别之处是:能浏览文件不一定就可以下载文件.而且文件是AUTOCAD文件. 解决方案 解决方案二:新出了款软件叫Qffice的文档系统,可以实现autocad在线编辑,还可以控制打开后的各种操作,比如,编辑.另存等操作解决方案三:在客户端安装各种插件,即可.

Java实现web在线预览office文档与pdf文档实例

1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目录,输入打开openoffice的命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 输入完成之后在任务管理器可以看见soffice.b

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

在Office 15即将发布之际我又发现了那些在开源的PHPoffice,一般的程序员.设计师他们距离Office办公套件也是蛮遥远的,但是如果真的要用了总不可 能去下载一个吧即使是WPS也需要时间,所以不如在自己的服务器上建立一个建议的PHP Office! 那些开源的php Office,快捷得在线编辑预览文档 这里的替代品(既简单又复杂),可能更加适合你. 从此我们在线观看文档不再需要豆丁和百度文库了!   PHPExcel PHPExcel   几乎支持所有常用Excel的功能的PHPE

实现OFFICE文档的在线打开编辑,如何通过网页注册owssupp.dll

问题描述 网上找了很多资料,都是关于在线打开,编辑office文档的内容.千遍一律.现在的网络成了抄袭的天下.都试过了.不行.我说一下:客户端安装的是OFFICE2003版本(比较老的版本),其中就没有安装sharepoint组件,更别提在office11目录中有owssupp.dll文件了.然后我就从另外的机子上拷贝了owssupp.dll文件,并放到了office11目录.也运行了网上所说的注册命令:regsvr32......owssupp.dll.狗屁~~~出错阿.而且还是不能在线打开O