董昊(昊子)的专栏

一个系统构架师、系统分析师(努力学习中...)

董昊ID:edisundong
270029次访问,排名215好友10人,关注者49
做最好的自己
edisundong的文章
原创 127 篇
翻译 0 篇
转载 16 篇
评论 259 篇
董昊的公告
 程序人生:

 21岁通过<高级程序员>考试。

 23岁大学毕业,在一家著名手机企业。

 24岁通过<系统分析师>考试。

 开发语言:
 .net从asp+用到.net 3.5
 java业余爱好者

 研究方向:
 目前的研究方向是企业级web开发编译器

 我的联系方式:
 edisundong_163.com
 (_替换成@)

最近评论
shuangziye:我汗啊!
feb9903:你们这些无聊又浮躁的家伙,楼主不过是帖点有用的东西出来和大家分享。至于原创与否,值得在这里大呼小叫么?
edisundong:@r_mosaic
谢谢回复,我学习了
r_mosaic:写得真不错,我收藏了!
r_mosaic:提一些意见:一、在描述线程与进程区别时,先描述线程,即操作系统对线程进行多任务调度;再描述进程,即线程之间是共享地址空间的,进程之间是不共享地址空间的。一个进程启动之后会自动启动一个主线程。这样就把区别描述清楚了。我可能讲得不完全对,请指正。
二、虚拟内存的定义应该直接用 i386 体系结构下的虚地址空间来定义,这样比较明确:即使是禁用了交换文件,虚拟内存机制同样起作用。比如可执行……
文章分类
收藏
    相册
    java
    俱乐部
    宁波.net俱乐部
    宁波.NET俱乐部
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 Office文档在线编辑的实现之一 收藏

    新一篇: 用户自定义控件加载顺序和Page_PreRender | 旧一篇: showModalDialog参数说明

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

    发表于 @ 2007年09月29日 13:15:00|评论(loading...)|编辑

    新一篇: 用户自定义控件加载顺序和Page_PreRender | 旧一篇: showModalDialog参数说明

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 董昊