如果你还不太清楚Dspframer.ocx怎么放到窗体上就看上一篇文章,里面详细介绍了是如何放到窗体上的。

链接:http://www.cnblogs.com/pingming/p/4182045.html

第一步 创建新窗体

创建一个新窗体,放置一个panel容器控件,我们就是要将dsoframer.ocx放到panel里面。

第二步 下面是所有调用的方法,有步骤的。

  1. public partial class ExcelForm : DevExpress.XtraEditors.XtraForm
  2. {
  3. private AxDSOFramer.AxFramerControl m_axFramerControl = new AxDSOFramer.AxFramerControl();
  4. public ExcelForm()
  5. {
  6. InitializeComponent();
  7.  
  8. }
  9.  
  10. #region Excel 的加载
  11.  
  12. //总的加载Excel方法
  13. private void Init(string _ExcelFilePath)
  14. {
  15. try
  16. {
  17. RegControl();
  18.  
  19. if (!File.Exists(_ExcelFilePath))
  20. {
  21. XtraMessageBox.Show("文件不存在或未标识的文件格式!", "提示信息");
  22. return;
  23. //throw new ApplicationException("文件不存在或未标识的文件格式!");
  24. }
  25.  
  26. AddAxFramerControl();//加载填充控件

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

  1. InitOfficeControl(_ExcelFilePath);
  2. }
  3. catch (Exception ex)
  4. {
  5. throw ex;
  6. }
  7.  
  8. }
  9.  
  10. //第二步:向panel填充AxFramerControl控件
  11. private void AddAxFramerControl()
  12. {
  13. try
  14. {
  15. this.panelExcel.Controls.Add(m_axFramerControl);
  16. m_axFramerControl.Dock = DockStyle.Fill;
  17. }
  18. catch (Exception ex)
  19. {
  20. XtraMessageBox.Show(ex.Message);
  21. throw;
  22. }
  23.  
  24. }
  25.  
  26. //第一步:注册AxFramerControl
  27. public bool RegControl()
  28. {
  29. try
  30. {
  31. Assembly thisExe = Assembly.GetExecutingAssembly();
  32. System.IO.Stream myS = thisExe.GetManifestResourceStream("NameSpaceName.dsoframer.ocx");
  33.  
  34. string sPath = System.AppDomain.CurrentDomain.BaseDirectory + @"\dsoframer.ocx";
  35. ProcessStartInfo psi = new ProcessStartInfo("regsvr32", "/s " + sPath);
  36. Process.Start(psi);
  37. }
  38. catch (Exception ex)
  39. {
  40. MessageBox.Show(ex.Message);
  41. }
  42. return true;
  43. }
  44.  
  45. //下面这个方法是dso打开文件时需要的一个参数,代表office文件类型
  46. /// <summary>
  47. /// 根据后缀名得到打开方式
  48. /// </summary>
  49. /// <param name="_sExten"></param>
  50. /// <returns></returns>
  51. private string LoadOpenFileType(string _sExten)
  52. {
  53. try
  54. {
  55. string sOpenType = "";
  56. switch (_sExten.ToLower())
  57. {
  58. case "xls":
  59. sOpenType = "Excel.Sheet";
  60. break;
  61. case "doc":
  62. sOpenType = "Word.Document";
  63. break;
  64. case "ppt":
  65. sOpenType = "PowerPoint.Show";
  66. break;
  67. case "vsd":
  68. sOpenType = "Visio.Drawing";
  69. break;
  70. default:
  71. sOpenType = "Word.Document";
  72. break;
  73. }
  74. return sOpenType;
  75.  
  76. }
  77. catch (Exception ex)
  78. {
  79. throw ex;
  80. }
  81. }
  82.  
  83. /// <summary>
  84. /// 第三步:初始化office控件,加载Excel
  85. /// </summary>
  86. /// <param name="_sFilePath">本地文档路径</param>
  87. private void InitOfficeControl(string _sFilePath)
  88. {
  89. try
  90. {
  91. if (m_axFramerControl == null)
  92. {
  93. throw new ApplicationException("请先初始化office控件对象!");
  94. }
  95.  
  96. //this.m_axFramerControl.SetMenuDisplay(48);
  97. //这个方法很特别,一个组合菜单控制方法,我还没有找到参数的规律,有兴趣的朋友可以研究一下
  98. string sExt = System.IO.Path.GetExtension(_sFilePath).Replace(".", "");
  99. //this.m_axFramerControl.CreateNew(this.LoadOpenFileType(sExt));//创建新的文件
  100. this.m_axFramerControl.Open(_sFilePath, false, this.LoadOpenFileType(sExt), "", "");//打开文件
  101. //隐藏标题
  102. this.m_axFramerControl.Titlebar = false;
  103. }
  104. catch (Exception ex)
  105. {
  106. throw ex;
  107. }
  108. }
  109.  
  110. /// <summary>
  111. /// 关闭当前界面
  112. /// </summary>
  113. public void Close()
  114. {
  115. try
  116. {
  117. if (this.m_axFramerControl != null)
  118. {
  119. this.m_axFramerControl.Close();
  120. }
  121. }
  122. catch (Exception ex)
  123. {
  124. throw ex;
  125. }
  126. }
  127.  
  128. //加载Excel 按钮
  129. private void sbtnLoading_Click(object sender, EventArgs e)
  130. {
  131.  
  132. Init(System.AppDomain.CurrentDomain.BaseDirectory + "excel\\项目汇总表.xls");
  133. }
  134.  
  135. //关闭
  136. private void ExcelForm_FormClosing(object sender, FormClosingEventArgs e)
  137. {
  138. Close();
  139. }
  140.  
  141. #endregion
  142. }

C# Dsoframer.ocx 如何在winform中嵌入Excel,内嵌Excel,word的更多相关文章

  1. C# 如何在winform中嵌入Excel,内嵌Excel,word

    近使用.net做一个小软件遇到一个问题,就是想实现把excel表格在winform中打开,同时可以操作,不单单是打开.或者就提取数据.在网上找了好多资料,发现这方面的资料比较少,即使有,都是旧版本的使 ...

  2. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

  3. WinForm中嵌入WebBrowser,并且支持C#和JS方法的相互调用

    纯粹WinForm界面不够友好,实现数据复杂度高的处理有些力不从心,所以看了看api以后决定用html来做. 我的wlw的代码插件不是很好用,大家凑合看吧 类前说明引用和权限 1: [Permissi ...

  4. winform中嵌入Ppt、Word、Excel

    1.下载DsoFramer_KB311765_x86.exe 2.安装,默认路径安装C:\DsoFramer. 3.注册:开始菜单——>运行 输入:regsvr32 C:\DsoFramer\d ...

  5. C#实现在Winform中嵌入Word和Excel

    http://www.cnblogs.com/wuzi145/archive/2012/05/08/2490680.html 在此只是介绍一个简单控件:dsoframer.ocx的使用,这个控件需要通 ...

  6. 如何在 Go 中嵌入 Python

    如果你看一下 新的 Datadog Agent,你可能会注意到大部分代码库是用 Go 编写的,尽管我们用来收集指标的检查仍然是用 Python 编写的.这大概是因为 Datadog Agent 是一个 ...

  7. WPF中嵌入Office编辑器(支持Word、Excel、PPT、Visio等)

    现在有一个项目,需要使用wpf做一个简单的客户端,用来生成word.excel.ppt.visio等文档,这就需要能够在wpf中嵌入office的编辑器,并对office文档进行编辑. 在网上搜索了一 ...

  8. 微信小程序中使用 <web-view> 内嵌 H5 时,登录问题的处理方法

    在微信小程序的开发中,经常遇到需要使用 <web-view></web-view> 内嵌 H5 的需求.在这种需求中比较棘手的问题应该就是登录状态的判断了,小程序中的登录状态怎 ...

  9. 如何在 JS 中嵌入大量 HTML 代码 --更新2017-10-10 16:37:09

    一.一般方式 方式1:\ 要写在标签后面,看例子 var longString = "\ ------------------------\ ------------------------ ...

随机推荐

  1. IE8 如何 不显示 选项 卡,直接在任务显示 各个页面?

    IE8  如何 不显示 选项 卡,直接在任务显示 各个页面? 在  工具->Internet 选项(o) ->常规--选项卡-设置->把第一个勾去掉  “启用选项卡浏览(需要重新启动 ...

  2. JavaWeb——库存管理系统(2).java部分---18.12.13

    DBUtil.java package com.hjf.util; import java.sql.Connection;import java.sql.DriverManager;import ja ...

  3. 笔记-sql语句

    笔记-sql语句 1.      sql语句基础 虽然经常使用sql语句,但没有一个整体式的文档,整理了一下. 1.1.    select foundation: select <colnum ...

  4. Java 高级应用编程 第一章 工具类

    一.Java API Java API简介 1.API (Application Programming Interface) 应用程序接口 2.Java中的API,就是JDK提供的各种功能的Java ...

  5. 关于Json.dumos中的ensure_ascii

    在使用json,dumps时,当需要输出中文时,需要在后面添加  ensure_ascii = Fasle 因为json.dumps 序列化时,默认对中文使用的是 ascii 编码,添加后才能输出中文 ...

  6. 自己用原生JS写的轮播图,支持移动端触屏滑动,面向对象思路。分页器圆点支持click和mouseover。

    自己用原生javascript写的轮播图,面向对象思路,支持移动端手指触屏滑动.分页器圆点可以选择click点击或mouseover鼠标移入时触发.图片滚动用的setInterval,感觉setInt ...

  7. Scala快速入门到精通 视频教程 百度云网盘下载地址

    Scala快速入门到精通  视频教程 百度云网盘下载地址 Scala快速入门到精通 下载地址链接:https://pan.baidu.com/s/1bqGIKyF 密码:ojwd

  8. Centos7 下安装以及使用mssql

    Centos7下安装以及使用Mssql,在这下面玩,主要是发现linux环境下的mysql非常的小,小到只有169M,这在windows上面,动撤几个G的安装文件,会让你直接打消使用MSSQL的勇气, ...

  9. 利尔达CC3200模块第一篇之-wlan_ap例程测试

    1. 本次采用利尔达的CC3200模块,CC3200主时钟80M,内部没有flash,必须外接SPI Flash.本次测试采用利尔达科技的CC3200的底板和模块(左边).烧写连接VCC, GND, ...

  10. SpringBoot学习:整合Redis

    项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 pom.xml添加对redis的依赖: <!-- https://mvnrepos ...