zoukankan      html  css  js  c++  java
  • [转]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 .
  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/SummerRain/p/1052739.html
Copyright © 2011-2022 走看看