Office文档在线编辑的实现之一 转 作者: 周建东 日期: 2007-09-12 03:42
来源:互联网 发布:eduline完整源码下载 编辑:程序博客网 时间:2024/05/30 22:53
因为项目的关系,研究了一下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;
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( "无法打开文档." );
}
}
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( "无法打开文档." );
}
}
- Office文档在线编辑的实现之一 转 作者: 周建东 日期: 2007-09-12 03:42
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现之一
- Office文档在线编辑的实现
- Office文档在线编辑的实现之二
- Office文档在线编辑的实现之二
- Office文档在线编辑
- 使用微软提供的Office Online实现Office文档的在线查看,编辑等功能
- 在线编辑office文档控件
- webserver和fileserver的分离实现方案以及对fileserver上的office文档实现在线编辑的实现
- 在线Office文档编辑ActiveX插件DsoFramer
- JavaScript Office文档在线编辑备忘
- office在线编辑和远程保存的实现
- Office word excel电子表格在线编辑的实现方法
- 怎么样在WEB上实现office在线编辑的功能
- office web app实现文档的预览编辑
- 从《蜗居》看失衡的中国城市化
- Excel操作类C#版 转 作者: 周建东
- Google Wave入门详细指南
- javascript对象和函数的区别
- 未来真的是光明的么
- Office文档在线编辑的实现之一 转 作者: 周建东 日期: 2007-09-12 03:42
- Chrome编译
- LED显示(2):简单模块的实现与分析
- 让人发狂的sql语句!
- big-endian and little-endian 及 网络字节序 主机字节序
- JavaScript基础--JavaScript 等性运算符
- 如何从一台铅封计算机上取走数据[转]
- compiz神灯特效最大摆动设置修改(其它特效修改方法相同)
- google wave小试牛刀~