精华内容
下载资源
问答
  • dsoframer.ocx 2.3.0.2版本

    2019-04-07 13:06:05
    dsoframer.ocx 2.3.0.2版本,在win10环境下,vs2013中测试office2016通过。
  • dsoframer.ocx

    2016-01-10 11:48:22
    内嵌word组件的工具,...解压后DsoFramer_KB311765_x86.exe直接安装是1.3版本。文件夹内.ocx文件是2.2版本。如需2.2版本可以将文件拷入32位系统c:\windows\system32下,64位系统c:\windows\syswow64下。而后注册即可
  • dsoframer.ocx控件

    2020-12-03 04:08:47
    dsoframer.ocx控件是一款ActiveX控件,可以用来实现在线编辑office、内嵌office办公软件等功能。这也是一款开源文件,相关API文档丰富。
  • dsoframer.ocx 2.3.0.2

    2017-09-11 18:23:43
    dsoframer.ocx 2.3.0.2 目前最细版本 本exe为静默安装,双击无反应属于正常现象,可使用360压缩,解压exe获取里面对应的ocx
  • DSOFRAMER.OCX

    2018-07-30 14:37:37
    DSOFRAMER.OCX 不用安装OFFICE,直接可以使用。WORD,EXECL
  • DSOFramer.ocx

    2015-10-19 13:08:31
    DSOframer 是微软提供一款开源的用于在线编辑 Word、 Excel 、PowerPoint 的 ActiveX 控件。国内很多著名的 OA 中间件,电子印章,签名留痕等大多数是依此改进而来的。 该控件为修改后的DSOFramer,经验证,解决了...
  • NULL 博文链接:https://yangpanwww.iteye.com/blog/1745972
  • DSOframer.ocx使用指南

    2018-03-27 15:56:13
    十几年前的东西了,保留一份,拿来学习,共享一下,谁有好的资源可以一同学习
  • DSOframer.ocx

    2013-03-11 16:13:21
    office控件,能在程序中实现word、excel、powerpoint等office文件的显示、编辑等功能,支持c#、c++、vb等语言。 使用前需先注册dsoframer.ocx控件,在未注册的电脑上程序可能无法正常运行。
  • dsoframer.ocx控件以及使用方法
  • 完整版dsoframer.ocx控件

    2012-09-16 12:09:37
    通过本人是亲身体验,该资源觉得完整,实用可以完整注册,并使用dsoframer.ocx控件
  • dsoframer.ocx使用方法

    2016-10-09 17:39:14
    dsoframer.ocx使用方法
  • 在思考实现的技术思路时,接触到了关联的ActiveX控件:dsoframer.ocx。于是,看了许多文章,趟过了一些坑,此处总结了一个简单的demo。希望能给需要的人以参考。 开发背景: vs2017+.net framework 4.6 + C# 关联...

    1. 问题描述

    最近在研究“如何实现在桌面程序中,实现内嵌office的功能,能够对办公文件(Excel/ Word/ PPT/ Visio)实现常见的查看、编辑、保存等功能”的问题。在思考实现的技术思路时,接触到了关联的ActiveX控件:dsoframer.ocx。于是,看了许多文章,趟过了一些坑,此处总结了一个简单的demo。希望能给需要的人以参考。

    开发背景: vs2017+.net framework 4.6 + C#
    关联控件: dsoframer.ocx(下载链接)
    本次Demo源代码下载: DsoFramerOffice.rar

    2. 效果展示

    实现功能:

    1. 注册dsoframer.ocx控件
    2. 取消注册dsoframer.ocx控件
    3. 加载 ppt / excel / word 等office常用文件类型。
    4. 使用同一个AxDSOFramer.AxFramerControl类对象,在不同文件类型的文件间进行切换。
      图片如下:
      1-功能点
      2-打开ppt,查看编辑
      2-打开Excel,查看编辑
      3-打开word,查看编辑

    3. 步骤描述

    注意: 需要本地安装了Office,dsoframer.ocx控件实质上是控制本地安装好的office来编辑文件,是一种在线编辑的形态。

    不仅仅可以应用在桌面程序上,web网页上调用ActiveX控件也能达到同样的效果。
    如果由需要,可以自行研究。

    具体步骤:(总共就3个步骤)

    1. 注册“dsoframer.ocx”。
    2. 打开vs2017,项目中添加Com组件。
    3. 查看API文件,编写代码调用相关接口,实现所需功能。

    尤其注意:

    在vs中添加COM组件时,如果没有注册dsoframer.ocx,无法正常将其添加到工具箱,从而无法正常使用。

    添加过程如下:
    1.在工具箱中,点击右键菜单,弹出项中点击“选择项”。

    2.在弹出窗口中,选择“Com组件” 选择框,勾选“DSO Framer Control Object”,点击确定。

    注意:一定要注册dsoframer.ocx后,才能在添加com组件时,找到"DSO Framer Control Object"。
    在这里插入图片描述

    3.然后在工具箱中,成功添加了“DSO Framer Control Object”控件,可像按钮一样拖拽使用。
    在这里插入图片描述

    4. 关键步骤代码

    注册dsoframer.ocx的部分代码:

    		/// <summary>
            /// 注册dsoframer.ocx
            /// </summary>
            /// <returns>返回-1:注册失败;返回1:注册成功;返回2:已注册过,不用重复注册</returns>
            public static int RegisterMain()
            {
                // 存放ocx文件的目录: bin\Debug\ocx\dsoframer.ocx
                string fileFullPath = string.Format("{0}\\ocx\\dsoframer.ocx", System.Environment.CurrentDirectory);
                string systemDrive = System.Environment.GetEnvironmentVariable("systemdrive");//获取系统所在的盘符
                // 确保dsoframer.ocx存在
                if (!File.Exists(fileFullPath) || String.IsNullOrEmpty(systemDrive))
                    return -1; // dsoframer.ocx不存在,注册失败
                bool isRegisted = IsRegistered("00460182-9E5E-11D5-B7C8-B8269041DD57");
                if (isRegisted)
                    return 2; // 已注册过,注册成功
    
                string windowsPath = string.Empty;
                if (GetOSBitCount() == "64")
                    windowsPath = string.Format("{0}\\Windows\\SysWOW64", systemDrive);
                else
                    windowsPath = string.Format("{0}\\Windows\\System32", systemDrive);
                if (!Directory.Exists(windowsPath))
                    return -1;//目标目录不存在,注册失败
                // 复制dsoframer.ocx文件到C:\\Windows\\SysWOW64 或 C:\\Windows\\System32
                File.Copy(fileFullPath, string.Format("{0}\\dsoframer.ocx", windowsPath), true);
    
                bool result = Registe(string.Format("{0}\\dsoframer.ocx", windowsPath)); //开始注册
    
                if (result)
                {
                    return -1; //注册失败
                }
                return 1;//注册成功
            }
            //注册dsoframer.ocx  
            private static bool Registe(string fileFullName)
            {
                bool result = false;
                System.Diagnostics.Process p = System.Diagnostics.Process.Start("regsvr32", fileFullName + " /s");//注册完毕不显示是否成功的提示  
                //System.Diagnostics.Process p = System.Diagnostics.Process.Start("regsvr32", fileFullName);//注册完毕显示是否成功的提示  
                if (p != null && p.HasExited)
                {
                    Int32 exitCode = p.ExitCode;
                    if (exitCode == 0)
                        result = true;
                }
                return result;//成功时,返回false
            }
    

    取消注册dsoframer.ocx的部分代码:

    		//取消注册dsoframer.ocx
            private static bool UnRegiste(string fileFullName)
            {
                bool result = false;
                System.Diagnostics.Process p = System.Diagnostics.Process.Start("regsvr32", fileFullName + " /u");//取消注册
                if (p != null && p.HasExited)
                {
                    Int32 exitCode = p.ExitCode;
                    if (exitCode == 0)
                        result = true;
                }
                return result;//成功时,返回false
            }
    

    判断dsoframer.ocx是否已经注册的代码:

    • 调用过程bool isRegisted = IsRegistered("00460182-9E5E-11D5-B7C8-B8269041DD57");
    		//判断控件是否已经注册  
            private static bool IsRegistered(String CLSID)
            {
                if (String.IsNullOrEmpty(CLSID))
                    return false;
    
                String key = String.Format(@"CLSID\{{{0}}}", CLSID);
                RegistryKey regKey = Registry.ClassesRoot.OpenSubKey(key);
                if (regKey != null)
                    return true;
                else
                    return false;
            }
    

    5. 举两个例子

    至于如何创建AxDSOFramer.AxFramerControl对象,并调用属性方法实现具体功能,需要再研究具体的API文档。(此处不再详述)

    1.隐藏AxDSOFramer.AxFramerControl对象的“标题栏、菜单栏、工具栏”,对应隐藏office的“标题栏、菜单栏、工具栏”。

    private AxDSOFramer.AxFramerControl m_axFramerControl;
    ... ...
    m_axFramerControl.Titlebar = false;//是否显示excel标题栏
    m_axFramerControl.Menubar = false;//是否显示excel的菜单栏
    m_axFramerControl.Toolbars = false;//是否显示excel的工具栏
    

    2.初始化office控件,加载 Excel/ Word/ PPT/ Visio

    	   /// <summary>
           /// 初始化office控件,加载Excel/Word/PPT
           /// </summary>
           /// <param name="_sFilePath"></param>
           private void InitOfficeControl(string _sFilePath)
           {
               try
               {
                   if (m_axFramerControl == null)
                   {
                       throw new ApplicationException("请先初始化office控件对象!");
                   }
    
                   //this.m_axFramerControl.SetMenuDisplay(48);
                   //这个方法很特别,一个组合菜单控制方法,我还没有找到参数的规律,有兴趣的朋友可以研究一下
                   string sExt = System.IO.Path.GetExtension(_sFilePath).Replace(".", "");
                   //this.m_axFramerControl.CreateNew(this.LoadOpenFileType(sExt));//创建新的文件
                   this.m_axFramerControl.Open(_sFilePath, false, this.LoadOpenFileType(sExt), "", "");//打开文件
                   //隐藏标题
                   this.m_axFramerControl.Titlebar = false;
               }
               catch (Exception ex)
               {
                   throw ex;
               }
           }
    
           //下面这个方法是dso打开文件时需要的一个参数,代表office文件类型
           /// <summary>
           /// 根据后缀名得到打开方式
           /// </summary>
           /// <param name="_sExten"></param>
           /// <returns></returns>
           private string LoadOpenFileType(string _sExten)
           {
               try
               {
                   string sOpenType = "";
                   switch (_sExten.ToLower())
                   {
                       case "xls":
                           sOpenType = "Excel.Sheet";
                           break;
                       case "xlsx":
                           sOpenType = "Excel.Sheet";
                           break;
                       case "doc":
                           sOpenType = "Word.Document";
                           break;
                       case "docx":
                           sOpenType = "Word.Document";
                           break;
                       case "ppt":
                           sOpenType = "PowerPoint.Show";
                           break;
                       case "pptx":
                           sOpenType = "PowerPoint.Show";
                           break;
                       case "vsd":
                           sOpenType = "Visio.Drawing";
                           break;
                       default:
                           sOpenType = "Word.Document";
                           break;
                   }
                   return sOpenType;
    
               }
               catch (Exception ex)
               {
                   throw ex;
               }
           }
    

    6. 总结

    此次demo实现功能点不多,但可以帮助入门借助dsoframer.ocx控件实现在线编辑office功能的研究,能基本完成在winform桌面程序中,内嵌office办公程序的效果。
    具体代码下载入口: DsoFramerOffice.rar
    本次demo源代码目录

    展开全文
  • dsoframer.ocx 2.3.0.0 含源码和ocx

    热门讨论 2010-03-06 10:30:31
    dsoframer.ocx 2.3.0.0 Release comments: 1、增加对OFFICE2007的支持 2、删除2个文件:msword9.h/msword9.cpp 编译生成了dsoframer.ocx 1、需要安装VC++6 2、需安装office2007 3、需安装wps office 2005 4、注意ms...
  • dsoframer.ocx源码与列子

    2021-01-12 15:11:02
    dsoframer.ocx是由微软官方推出的一款在线编辑word、excel、powerpoint的activeX控件,含使用列子与源码
  • dsoframer2.3.ocx.rar

    2019-11-01 11:10:37
    DSOFramer在线word编辑,ocx控件可以嵌入桌面软件和web网页,文件包含dsoframer.ocx 2.3.0.2和dsoframer.ocx 2.2.1.2两个合集
  • dsoframer.ocx 2.3.0.1版

    2014-07-29 09:25:12
    dsoframer.ocx 2.3.0.1版
  • DsoFramer_V1.3此为最新版源码,修正了对OFFICE2010的支持。
  • dsoframer.ocx.7z

    2019-06-29 23:58:09
    dsoframer.ocx 2.3.0.2版本,在win10环境下,vs2013中测试office2016通过。
  • DsoFramer.ocx,制作CAB包,详细图解过程
  • DSOFramer.ocx 2.3

    千次下载 热门讨论 2011-11-16 14:17:37
    DSOFramer.ocx 2.3版本。读写word控件
  • dsoframer.ocx.rar

    2019-05-16 12:02:07
    使用DSOFramer.ocx在C#的winform中直接显示word,excel,ppt,txt等相关的office文档,含接口文档和客户端自动注册代码
  • 最新dsoframer.ocx

    热门讨论 2010-10-15 16:50:17
    DSOFramer.ocx 控件使用 接口文档: /* 1.新建 */ //新建Word document.all.FramerControl1.CreateNew("Word.Document"); //新建Excel document.all.FramerControl1.CreateNew("Excel.Sheet"); /* 2.打开文件 */ ...
  • DSOFramer.ocx 源码

    2013-12-25 17:30:06
    DSOFramer.ocx 源码, 支持OFFICE2007, vc6.0。
  • 现在回过头来,重新研究了这方面的直接办法,在网上查了多方面的资料,终于决定要使用ocx这个方案来完成此项功能,可限于资源问题,ocx方面的资料 没怎么接触过,所以就盲目的在晚上看别人的...

     

    最近一段时间真是事情太多了,前不久项目中一个嵌入office软件的问题,由于没有时间研究,且项目的需求是浏览word文档,偷了一个懒,把word文档转换成pdf文档,然后嵌入libcef浏览器给打开了

       现在回过头来,重新研究了这方面的直接办法,在网上查了多方面的资料,终于决定要使用ocx这个方案来完成此项功能,可限于资源问题,ocx方面的资料 没怎么接触过,所以就盲目的在晚上看别人的东西,不过皇天不负有心人,最终还是让我成功的搞定了这个问题,然后觉着,这个ocx也不过如此么,总的来说说 还是比较简单

        我当前机器环境:windwos7 64位  dsoframer 1.3 qt5.5.1 vs2013

    下边我说下我自己的步骤:

    1、下载dsoframer.ocx,然后使用命令注册regsvr32.exe dsoframer.ocx 

    2、运行regedit.exe 在HKEY_LOCAL_MACHINE目录下搜索dsoframer,获取CLSID的值,这个是用作ocx的唯一标示,如果没有搜索到,可以下载其他的dsoframer,重新注册,或者给我留言

    3、接下来直接上代码

    复制代码

     1 QAxWidget * _Word = new QAxWidget(this);
     2 
     3 _Word->setControl("{00460182-9E5E-11d5-B7C8-B8269041DD57}");
     4 
     5 _Word->setProperty("Visible", true);
     6 
     7 QString filePath = QFileDialog::getOpenFileName(0, "Open doc file", QString(), "*.doc");
     8 
     9 if (filePath.isEmpty())
    10 
    11 return;
    12 
    13 _Word->dynamicCall("Open(string)", filePath);
    14 
    15 _Word->dynamicCall("SetCaption(string)", "ocx test");
    16 
    17 _Word->dynamicCall("SetMenuAccelerators(bool)", false);
    18 
    19 _Word->dynamicCall("SetMenubar(bool)", false);
    20 
    21 QGridLayout * ply = new QGridLayout(this);
    22 
    23 ply->addWidget(_Word, 0, 0, 1, 1);
    24 
    25 ply->setContentsMargins(0, 0, 0, 0);
    26 
    27 ui.widget->setLayout(ply);

    复制代码

    效果图如下:

    dsoframer.ocx打开office软件

    dsoframer的相关接口,不过常用的也就那么几个

    BeforeDocumentClosed(IDispatch*,bool&) Document,Cancel

    BeforeDocumentSaved(IDispatch*,QString,bool&) Document,Location,Cancel

    OnActivationChange(bool) fGoingActive

    OnDocumentClosed()

    OnDocumentOpened(QString,IDispatch*) File,Document

    OnFileCommand(dsoFileCommandType,bool&) Item,Cancel

    OnPrintPreviewExit()

    OnSaveCompleted(IDispatch*,QString,QString) Document,DocName,FullFileLocation

    exception(int,QString,QString,QString) code,source,disc,help

    propertyChanged(QString) name

    signal(QString,int,void*) name,argc,argv

    Activate()

    Close()

    CreateNew(QString) ProgIdOrTemplate

    EnableFileCommand(dsoFileCommandType) Item bool

    ExecOleCommand(int) OLECMDID

    ExecOleCommand(int,QVariant) OLECMDID,Options

    ExecOleCommand(int,QVariant,QVariant&) OLECMDID,Options,vInParam

    ExecOleCommand(int,QVariant,QVariant&,QVariant&)  OLECMDID,Options,vInParam,vInOutParam

    GetDataObjectContent(QVariant) ClipFormatNameOrNumber QVariant

    Open(QVariant) Document

    Open(QVariant,QVariant) Document,ReadOnly

    Open(QVariant,QVariant,QVariant)    Document,ReadOnly,ProgId

    Open(QVariant,QVariant,QVariant,QVariant)Document,ReadOnly,ProgId,WebUsername

    Open(QVariant,QVariant,QVariant,QVariant,QVariant) Document,ReadOnly,ProgId,WebUsername,WebPassword    

    PrintOut()

    PrintOut(QVariant) PromptUser 

    PrintOut(QVariant,QVariant) PromptUser,PrinterName

    PrintOut(QVariant,QVariant,QVariant) PromptUser,PrinterName,Copies

    PrintOut(QVariant,QVariant,QVariant,QVariant)

    PromptUser,PrinterName,Copies,FromPage

    PrintOut(QVariant,QVariant,QVariant,QVariant,QVariant) PromptUser,PrinterName,Copies,FromPage,ToPage

    PrintOut(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)  PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile

    PrintPreview()

    PrintPreviewExit()

    Save()

    Save(QVariant) SaveAsDocument

    Save(QVariant,QVariant) SaveAsDocument,OverwriteExisting

    Save(QVariant,QVariant,QVariant)

    SaveAsDocument,OverwriteExisting,WebUsername

    Save(QVariant,QVariant,QVariant,QVariant) SaveAsDocument,OverwriteExisting,WebUsername,WebPassword

    SetActivationPolicy(dsoActivationPolicy) ActivationPolicy

    SetBackColor(QColor) BackColor

    SetBorderColor(QColor) BorderColor

    SetBorderStyle(dsoBorderStyle) BorderStyle

    SetCaption(QString) Caption

    SetDataObjectContent(QVariant,QVariant) ClipFormatNameOrNumber,DataByteArray

    SetEnableFileCommand(dsoFileCommandType,bool) Item,rhs

    SetEventsEnabled(bool) EventsEnabled

    SetForeColor(QColor) ForeColor

    SetFrameHookPolicy(dsoFrameHookPolicy) FrameHookPolicy

    SetHostName(QString)HostName

    SetLockServer(bool) LockServer

    SetMenuAccelerators(bool) MenuAccelerators

    SetMenubar(bool) Menubar SetModalState(bool) ModalState

    SetTitlebar(bool) Titlebar

    SetTitlebarColor(QColor) TitlebarColor

    SetTitlebarTextColor(QColor) TitlebarTextColor

    SetToolbars(bool) Toolbars

    ShowDialog(dsoShowDialogType) DlgType

    _PrintOutOld()

    _PrintOutOld(QVariant) PromptToSelectPrinter

    展开全文
  • dsoframer.ocx 在线文档编辑控件源码,OA开发必备,支持Office2007

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 493
精华内容 197
关键字:

dsoframer.ocx