`

dsoframer

阅读更多

近来由于工作需要,要求实现一个office文档在线编辑器,和有些office在线编辑控件不同,就是不提供本地文件的操作,而是对指定的远程office文件或远程数据库中的office文件进行操作,然后保存到数据库中。其实个人感觉远程文件的编辑与本地文件的编辑处理方式一样,先把远程office文件或保存到数据库中的office文件下载到本地临时文件夹内,然后进行修改,再上传到服务器这么一个大致过程。这里暂时不讨论有关上传和下载的问题,主要看office文件的在线编辑。

       关于office的在线编辑又朋友提示我用FCKedit控件,可是我发现它仅仅是在线编辑普通文本,对visio和ppt文档一点措施都没有,从网上(http://www.dsoframer.com/)找到了一个ActiveX控件dsoframer,一个用C++实现的office控件,决的还不错。就是帮助文件很少,还有以前是免费的,还有源代码,现在好像作者开始收费了,这个具体细节不清楚。言归正传:

1.注册这个dsoframer.ocx控件,

public bool Init()

  {

   try

   {

    Assembly thisExe = Assembly.GetExecutingAssembly();

    System.IO.Stream myS = thisExe.GetManifestResourceStream("NameSpaceName.dsoframer.ocx");

   

    string sPath = “该ocx文件的实际路径”+ @"/dsoframer.ocx";

    ProcessStartInfo psi = new ProcessStartInfo("regsvr32","/s " +sPath);

    Process.Start(psi);

   }

   catch(Exception ex)

   {

    MessageBox.Show(ex.Message);

   }

   return true;

  }

2.向winform中添加该控件

AxDSOFramer.AxFramerControl axFramerControl1 = new AxDSOFramer.AxFramerControl();

this.Controls.Add(axFramerControl1);

axFramerControl1.Dock = System.Windows.Forms.DockStyle.Fill;

至此,运行该程序就可以使用了。

 

 

经过初步使用和测试发现dsoframer.ocx的一些问题:

      1.  不能加载mdb和pub文件

      2.  word操作中的打印预览关闭可能导致整个窗口关闭(有时)

3.  不能打开没有初始化过的vsd文件,但可以打开自己创建的vsd文件

4.  操作excel的时候delete键有时候会失灵

5.  只支持打开一个文件,对上一个文件采取关闭不提示保存

6.  控件初始化后的菜单是不能单个进行隐藏,只能统一隐藏菜单栏

但是它给我们返回了一个很重要的信息:它给我们返回了当前操作的文档对象,经过初步测试,可以强制转换为office文档对象

   Object myObj = this.axFramerControl1.ActiveDocument;

   if(myObj == null)

   {

    return;

   }

   //如果当前打开的是word

   Word.Document wdoc = (Word.Document)myObj;

我觉得这就给我们留下了很大的空间,我们可以通过wdoc这个对象发布我们自己的事件,添加我们自己的菜单以及菜单事件处理程序,添加工具栏和工具栏事件处理程序。这就告诉我们可以使用VBA开发来操作文档了。

 

通过这些天使用我们可以得到当前操作的文档对象(我还以自己测试的word文档为例),但是要明确一点,添加菜单不仅仅是针对当前word文档,而是当前机器上的word程序,你可以通过当前文档添加,但添加之后就会一直保存,你随便打开一个本地word文档,菜单都会出现,因此我们在关闭应用程序的时候(或退出的时候)要delete。

//主菜单属于CommandBarPopup类型

//子菜单属于Microsoft.Office.Core.CommandBarButton

   Microsoft.Office.Core.CommandBarPopup myMenu;

   Object missing = System.Type.Missing;

   Microsoft.Office.Core.CommandBarButton myChileMenu;

   Word.ApplicationClass myWord = new Word.ApplicationClass();

   Microsoft.Office.Core.CommandBar MainMenuBar =  myWord.CommandBars.ActiveMenuBar;

   Object temp = true;

//添加主菜单

   myMenu= (Microsoft.Office.Core.CommandBarPopup)MainMenuBar.Controls.Add(

      Microsoft.Office.Core.MsoControlType.msoControlPopup, missing, missing, missing, temp);

   myMenu.Caption = "Test(&B)";

     myMenu.Visible = true;

     myMenu.Tag = Object;

//给主菜单添加子菜单

    myChileMenu= (Microsoft.Office.Core.CommandBarButton)      myMenu.Controls.Add (Microsoft.Office.Core.MsoControlType.msoControlButton, missing,missing, missing, true);

    myChileMenu.Caption = "MessageBox";

    myChileMenu.Visible = true;

    myChileMenu.Tag = "Test";

//给子菜单添加事件

    myChileMenu.Click +=new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(myChileMenu_Click);

//子菜单的事件处理程序

private void myChileMenu_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)

  {

   try

   {

    MessageBox.Show("菜单事件完成了!");

   }

   catch(Exception ex)

   {

    MessageBox.Show(ex.Message);

   }

  }

     

  在退出应用程序的时候,需要调用自定义菜单的delete(),一般先从子菜单删除,逐级到最高级主菜单,调用删除方法:myChileMenu.delete(true&false);myMenu.delete(false);

分享到:
评论

相关推荐

    dsoframer2.3.0.0.rar_DsoFramer 2.3_Dsoframer?2.3.0.0_V2 _dsofram

    **DSOframer 2.3.0.0 OCX 控件详解** DSOframer 是一款强大的ActiveX(OCX)控件,主要用于在Windows应用程序中嵌入和操作Microsoft Office文档,如Word、Excel、PowerPoint等。版本2.3.0.0是这个控件的一个特定...

    dsoframer.ocx_DsoFramer_

    【标题】"dsoframer.ocx_DsoFramer_" 指的是一个特定的控件,名为 DsoFramer,它是一个ActiveX组件。在IT领域,ActiveX技术是微软开发的一种组件对象模型(COM),用于在Windows环境中创建交互式、可重用的软件组件...

    dsoframer 2.3 免费版

    **DSOFramer 2.3 免费版详解** DSOFramer是一款强大的控件,主要用于在应用程序中嵌入Microsoft Office文档,尤其是Word文档。它的核心功能是提供一个接口,允许开发者在自己的应用程序中读取、编辑和显示Word文档...

    dsoframer.ocx最新版本

    最新的版本通常会包含更多的功能和修复了已知的安全漏洞,因此对于那些使用DSOFramer.ocx的开发者来说,更新到最新版本是至关重要的。 在描述中提到的新版DSOFramer.ocx,通过`http://server/dir/`的格式可以实现将...

    dsoframer.ocx控件

    **DSOFramer.ocx 控件详解** DSOFramer.ocx 是一个非常实用的 ActiveX 控件,主要用于在 Web 应用程序中实现在线编辑 Office 文档的功能。它允许用户在浏览器环境中内嵌 Office 办公软件,如 Word、Excel 和 ...

    dsoFramer_Source_1.3.zip_1.3_DsoFramer_dsoframer.ocx 1.3_source_

    《DSOFramer控件1.3版本源代码解析与应用》 DSOFramer.ocx是1.3版本的动态链接库(DLL)控件,它主要用于实现读写Microsoft Word的功能。这个控件允许开发者在自己的应用程序中嵌入Word文档,进行编辑、显示以及...

    dsoframer.ocx控件以及使用方法

    **dsoframer.ocx控件详解与使用指南** **一、dsoframer.ocx控件介绍** dsoframer.ocx是一款ActiveX控件,主要用于在Windows应用程序中嵌入和显示各种文档,如Word、Excel、PDF等。通过这款控件,开发者可以轻松地...

    dsoframer_v2.3.0.2.ocx

    《DSOFramer控件详解与应用》 DSOFramer是一个强大的控件,主要用来实现在线编辑Office文档的功能,尤其适用于Windows Forms(Winform)和Web Forms(Webform)应用程序。这个控件的核心在于其能够无缝集成到开发...

    dsoframer.ocx控件最新版支持office2016

    **DSOFramer.ocx控件** 是一个专为软件开发者设计的组件,它主要用于在Windows Forms(WinForm)应用程序中嵌入Office文档,如Word、Excel等。此控件的最新版已经更新以支持Microsoft Office 2016,这意味着开发者...

    dsoframer最新版支持office2016.zip

    《DSOframer最新版与Office 2016的集成及在线预览技术解析》 DSOframer是一款强大的控件,它主要用于在Web环境中实现Office文档的在线预览功能,包括Excel、Word和PowerPoint等文件。在这个最新的版本中,DSOframer...

    DsoFramer V2.3.0.1 源码 支持office2007

    《DsoFramer V2.3.0.1 源码详解——支持Office 2007》 DsoFramer是一款强大的ActiveX控件,它的主要功能是嵌入Office文档,如Word、Excel、PowerPoint等,到其他应用程序中,实现与Office组件的无缝集成。V2.3.0.1...

    DsoFramer.ocx接口及说明

    DsoFramer.ocx接口及说明 word在线编辑,加密,书签,等2. HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, ...

    DSOframer+接口文档+java后台及前台代码说明

    DSOframer是一款用于网页内嵌展示各种文档的框架,它允许开发者在Web应用中集成PDF、Word、Excel等格式的文件预览功能。这款工具通常通过JavaScript与后端Java服务进行交互,实现动态加载和控制文档的显示。在...

    win10下如何注册DSOFramer控件

    在Windows 10操作系统中,DSOFramer控件是一个用于集成Office文档框架的ActiveX控件,常被开发者用来在应用程序中嵌入Office文档。如果你需要在Win10环境下注册这个控件,以下是一步步的详细指导: 1. **了解...

    dsoframer2.3.ocx.rar

    《DSOFramer在线Word编辑控件详解》 DSOFramer是一款功能强大的ActiveX控件,主要应用于嵌入式在线Word编辑。它允许开发者在桌面软件和Web网页中集成Word编辑功能,极大地提升了用户在非Microsoft Office环境下编辑...

    DsoFramer V2.3.0.2

    dsoframer.ocx 2.3.0.0 Release comments: 1、增加对OFFICE2007的支持 2、删除2个文件:msword9.h/msword9.cpp ///////////////////////////////////////////////////// Issued by jiangzuixian on sep 19,2009 ...

    DSOFramer-在线编辑 Word、 Excel 、PowerPoint 的 ActiveX 控件

    DSOFramer是一款由微软开发并开源的ActiveX控件,专为在线编辑Microsoft Office文档而设计,主要包括Word、Excel和PowerPoint格式的文件。这款控件使得开发者能够在Web应用程序中集成Office文档的编辑功能,无需用户...

    通过Dsoframer控件自动播放PPT文件的C#源码

    资源名:通过Dsoframer控件自动播放PPT文件的C#源码 资源类型:程序源代码 源码说明: 通过Dsoframer控件自动播放PPT文件的源码,另外包含win8风格窗口源代码,自动循环播放文件夹内所有图片文件功能的源码,以及...

    C# winform 使用DsoFramer 创建 显示office 文档

    为了实现这一功能,我们可以借助第三方控件DsoFramer。DsoFramer是一个强大的组件,它允许开发者在WinForm窗体中无缝集成Microsoft Office文档,包括Word、Excel、PowerPoint等。 首先,我们需要理解C# WinForm的...

Global site tag (gtag.js) - Google Analytics