Office文档在线编辑的一个实现方法

所属分类: 网络编程 / 网页编辑器 阅读数: 542
收藏 0 赞 0 分享
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 .
更多精彩内容其他人还在看

FCKEditor常用Js代码,获取FCK内容,统计FCK字数,向FCK写入指定代码

FCKEditor常用Js代码,获取FCK内容,统计FCK字数,向FCK写入指定代码,使用FCKEditor的朋友可以参考下。增加编辑器的人性化功能。
收藏 0 赞 0 分享

CKEditor网页编辑器 中文使用说明

安装CKEditor是一件容易的工作,只需要按照下面的简单步骤就可以完成。多测试。
收藏 0 赞 0 分享

FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合

FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合方法,里面有下载,可以根据需要结合自己的fckeditor版本。
收藏 0 赞 0 分享

eWebEditor 请选择一个有效的文件的解决方法

解决eWebEditor上传图片提示 请选择一个有效的文件
收藏 0 赞 0 分享

Ewebeditor 不能粘贴或复制的解决方法

在调试网站后台时,遇见用EWEBEDITOR编辑内容时,不能从其他文件来源粘贴到里面.
收藏 0 赞 0 分享

javascript fckeditor编辑器取值与赋值实现代码

这篇文章对于使用fckeditor编辑器的朋友是个不错应用,主要介绍的是js对fckeditor的取值与赋值操作,fckeditor是个不错的比较方便的扩展功能的编辑器。
收藏 0 赞 0 分享

Html 编辑器粘贴内容过滤技术详解

最近在解决数据粘贴方面取得了不少进展,作为Html在线编辑器所必须具备的技术,在这里详细给大家介绍并提供实现参考。
收藏 0 赞 0 分享

Js FCKeditor的值获取和修改的代码小结

FCKeditor编辑器是比较流行的一款编辑器,很多cms系统都在使用,免费而功能强大。容易扩展等特性赢得了大家的喜爱。
收藏 0 赞 0 分享

22个国外的Web在线编辑器收集

本文搜集了 22 个 Web 在线编辑器,它们基本代表了当前 Web 编辑器的现状。
收藏 0 赞 0 分享

FCKeditor添加自定义按钮的方法

FCKLang是语言包对象,您只要打开FCK/editor/lang/下面的相应语言包添加相应的名称属性就可以了,比如:MyAlbum打开我的像册。注意大小写!至此我们的添加工作已完成。
收藏 0 赞 0 分享
查看更多