最近一直想用VC#2005做个内嵌WORD/OFFICE的WINFORM程序,目前主要有以下解决途径:

1、直接通过API把WORD/OFFICE的窗口句柄给放到WINFORM中(感觉较为复杂);

2、通过WEB BROWSER;

3、利用DSOFRAMER。

本人都测试了一下,觉得DSOFRAMER更符合自己的愿望,故决定使用DSOFRAMER来实现。

操作步骤:
WinForm

1、从微软网站下载DsoFramer_KB311765_x86.exe,解开将得到dsoframer.ocx;

2、把dsoframer.ocx拷贝到系统目录下,并注册,我是写了一个reg.bat来实现: copy dsoframer.ocx c:\windows\system32\dsoframer.ocx regsvr32.exe c:\windows\system32\dsoframer.ocx

3、启动VS2005,新创建一个WINFORM的C#程序;

4、在设计工具栏中,新添加选项,在弹出的页面中选择“TAB”页,然后浏览,选择c:\windows\system32\dsoframer.ocx进行添加,此时设计工具栏中将看到这个工具,名字为“DSO FRAMER CONTROL OBJECT”;

5、拖动此工具到某设计FORM窗口中,此时将在代码文件中添加了以下行: private AxDSOFramer.AxFramerControl axFramerControl1;

6、打开文件,this.axFramerControl1.Open(_filePath);//注:_filePath为.doc或者.xls为后缀的文件;

7、此时就可以直接在打开的WORD/EXCEL上进行编辑保存等等操作了。 注:在操作过程中,发现按打印预览按钮后关闭,会引起WORD/EXCEL报错,找了好久,后来直接安装OFFICE2003 SP3,哈哈,fix the bug,不会报错了。
本文来自http://www.cnblogs.com/tianfu/archive/2009/05/07/1452047.html

Web
1.将dsoframer.ocx复制到c:\windows\system32\

2.双击运行regocx.bat文件 在vs2010中使用dsoframer控件:

1.在工具箱中添加项,在COM 选项卡中选择已注册的dsoframer控件。

2.将公共控件中的DSO Framer控件拖到表单上。

3.在DSO中打开Office文件代码: this.axFramerControl1.Open("c:\\test.xls");

4.将Office文件保存的代码:  
 private void button1_Click(object sender, EventArgs e)
 { this.axFramerControl1.Open("C:\\Documents and Settings\\Administrator\\桌面\\复件 新建 Microsoft Word 文档.doc"); }
 private void button2_Click(object sender, EventArgs e)
 { this.axFramerControl1.Save("C:\\Documents and Settings\\Administrator\\桌面\\111111111 文档.doc", true, "myname", "mypass"); }

[转]内嵌WORD/OFFICE的WINFORM程序——DSOFRAMER使用小结的更多相关文章

  1. 微信小程序内嵌网页能力开放 小程序支持内嵌网页文档说明

    为了方便开发者灵活配置微信小程序,张小龙现在开放了小程序的内嵌网页功能,这是一个非常大的惊喜啊,以后意味着你只要开放一个手机端网站,就可以制作一个小程序了哦.操作方法1.开发者登录微信小程序后台,选择 ...

  2. Webform——内嵌word编辑器

    word编辑器,类似于Word的. 首先需要添加两个引用: 然后把一个文件夹仍在根目录下: 继而在工具箱里 选择项→浏览找到这两个引用,直接把工具拽进来就行: 获取编辑器文本: protected v ...

  3. 微信小程序内嵌网页 网站生成小程序

    1. 进入小程序后台 - 设置 - 开发设置 2. 添加业务域名(小程序只支持https) 3. 小程序代码 <web-view src="网址"></web-v ...

  4. app内嵌h5分享到小程序分享功能

    if (this.GLOBAL.env !== 'production') { try { window.JSBridge.shareMiniProgramToWx('https://www.lexi ...

  5. swt java 内嵌ActiveX控件

    这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX. 具体用法如下: //创建一个OleFra ...

  6. .NET Core的文件系统[4]:由EmbeddedFileProvider构建的内嵌(资源)文件系统

    一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取内嵌于某个程序集中的资源文件,不过在这之前我们必须知道如何将一个项目文 ...

  7. 由EmbeddedFileProvider构建的内嵌(资源)文件系统

    由EmbeddedFileProvider构建的内嵌(资源)文件系统 一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取 ...

  8. 【转】WebResource实现在自定义控件中内嵌JS文件

    在类库中的资源  其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发 ...

  9. Winform/WPF中内嵌BeetleX的HTTP服务

    在新版本的BeetleX.FastHttpApi加入了对netstandard2.0支持,如果程序基于.NetFramework4.6.1来构建WinForm或WPF桌面程序的情况下可以直接把Beet ...

随机推荐

  1. 设计模式之Composite模式(笔记)

    组合模式:将对象组合成树形结构以表示"部分-总体"的层次结构. 组合模式使得用户对单个对象和组合对象的使用具有一致性. 适用场合:当需求中是体现部分与总体层次的结构时,以及希望用户 ...

  2. 学习笔记之SQL

    --------参考网站-------- http://en.wikipedia.org/wiki/SQL SQL@Wiki http://en.wikipedia.org/wiki/Delete_% ...

  3. ajax调用webService中的方法

    页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx. ...

  4. (收藏)sokcet编程

    C# Socket网络编程精华篇 C#编写高性能网络服务器(源码) .net自动更新组件Ant 客户端服务器通信demo(附源码) 有了WCF,Socket是否已人老珠黄? Socket服务器整体架构 ...

  5. Mini2440 DM9000 驱动分析(一)

    Mini2440 DM9000 驱动分析(一) 硬件特性 Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系: PW_RST 连接到复位按键,复位按键按下,低电平 ...

  6. 程序员谈学习:我为什么要学习Linux?

    http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...

  7. python--字符工厂函数dict()

    字符工厂函数str() class str(object): """ str(object='') -> str str(bytes_or_buffer[, enc ...

  8. Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数

    知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...

  9. boot2docker安装及使用

    更新homebrew 为了确保有boot2docker的安装脚本 brew update 安装boot2docker brew install boot2docker 初始化 boot2docker ...

  10. Hibernate学习笔记--------4.查询

    一.Get/Load Get方法是立即检索,而load是延迟检索,他们都是根据主键进行查询.在<class>标签中,若把lazy属性改为false,load方法就会立即检索,class中的 ...