因为项目的关系,研究了一下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,来打开,修改服务器上的文档.



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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,编辑服务器上的文档:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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文档的在线编辑, 但有一个问题:这样,文档是存放在文件系统上,我们很多系统中,

Office文档在线编辑的实现之一的更多相关文章

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

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

  2. 使用WebDAV实现Office文档在线编辑

    Office的文档处理能力是非常强大的,但是它是本地资源,在Office Web App尚未成熟前,仍需要使用本地能力来进行文档编辑,可是现代的系统的主流却是B/S,所以在B/S中调用本地的Offic ...

  3. wps金山文档在线编辑--.Net 接入指南

    一.申请成为服务商,对金山文档在线服务进行申请 ①进入官网 https://open.wps.cn/ ②申请后如下图,点击右下角的进入服务 ③申请成功后 ④数据回调URL一定是服务器地址,本次我使用的 ...

  4. Office文档在线预览

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

  5. 在线预览-Java 使用 Print2Flash 实现Office文档在线阅读

    近期项目上遇到一个需求是用户上传的文档进行在线浏览,之前有过一篇使用 OpenOffice 将 word 转换成 html 页面进行展示的.现在介绍一个新的工具那就是 Print2Flash .    ...

  6. Java版office文档在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  7. 使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步

    转载自:https://www.bilibili.com/read/cv16835328?spm_id_from=333.999.0.0 0x00 前言简述 描述:由于个人家里的NAS以及公司团队对私 ...

  8. 快速实现office文档在线预览展示(doc,docx,xls,xlsx,ppt,pptx)

    微软:https://view.officeapps.live.com/op/view.aspx?src=(输入你的文档在服务器中的地址):

  9. OFFICE 文档转换为html在线预览

    OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaper Office文档直接转换为SWF,通过网页加载Flash预览 微软的 ...

随机推荐

  1. 如何安装一个优秀的BUG管理平台(转)

    前言 就BUG管理而言,国内的禅道做得很不错,而且持续有更新.我们来看看如何从头到尾安装禅道,各位要注意的是,不是文章深或者浅,而是文章如何在遇到问题的时候,从什么途径和用什么方法解决问题的.现在发觉 ...

  2. SharePoint 2013 中将 HTML文件转换为母版页

    原文:SharePoint 2013 中将 HTML文件转换为母版页 SharePoint 2013提供了很多新功能,下面我们看看将Html页面,转换为母版页的功能.这个功能更加方便设计人员设计母版页 ...

  3. NSIS:在注册表中记录安装路径以便重装或升级时读取

    原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬. 第1步:在“安装目录选择页面”前面加入以下代码: 1 !def ...

  4. Controller 里面就只应该存放这些不能复用的代码(转)

    MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架 ...

  5. linux中fork()函数具体解释(原创!!实例解说)

     一.fork入门知识 一个进程,包含代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程差点儿全然同样的进程,也就是两个进程能够做全然同样的事,但假设初始參数或者传入的变量不 ...

  6. C语言优化实例:为了消除嵌套switch-case聪明的做法

    我们有可能会写出或者遇到类似这种代码: C/C++ switch (expr1) { case label11: switch (expr2) { case label21: // do someth ...

  7. javascript活动

    在javascript倘若有知识的三个方面.事件的第一,流程,其次,事件处理,第三,事件对象.下面就我个人的理解,,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件依照一定的顺序触发.它 ...

  8. 苹果公司的新的编程语言 Swift 高级语言()两--基本数据类型

    一  .   常量和变量 Swift语言 对常量和变量的声明进行了明白的区分 Swift语言的常量类型比C 语言的constants类型更加强大,语义更加明白. 常量和变量的差别是常量在设置或初始化后 ...

  9. NYNU_省赛选拔题(5)

    题目描述 P 的一家要出去旅游,买了当地的地图,发现各地分别由各个景点,若 P 想使家人分队去景点,尽快到达各个景点(必须所有景点),并且最终所有家人都到达 M 所在的景点.   你用程序告诉 P 最 ...

  10. Tips & Tricks:Apache log4j简明教程(二)

    在上一讲Apache log4j简明教程(一)中介绍了log4j的基本概念,配置文件,以及将日志写入文件的方法,并给出了一个详细的示例.这一讲,我在继续谈一谈如何使用log4j将日志写入MySQL数据 ...