创建Excel解决方案样本.doc

上传人:大米 文档编号:558637757 上传时间:2023-09-07 格式:DOC 页数:28 大小:1.48MB
返回 下载 相关 举报
创建Excel解决方案样本.doc_第1页
第1页 / 共28页
创建Excel解决方案样本.doc_第2页
第2页 / 共28页
创建Excel解决方案样本.doc_第3页
第3页 / 共28页
创建Excel解决方案样本.doc_第4页
第4页 / 共28页
创建Excel解决方案样本.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《创建Excel解决方案样本.doc》由会员分享,可在线阅读,更多相关《创建Excel解决方案样本.doc(28页珍藏版)》请在金锄头文库上搜索。

1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。VSTO之旅系列(二): 创立Excel解决方案 -02-24 18:00:150本专题概要 引言 创立VSTO项目 Excel对象模型 创立Excel外接程序 创立Excel文档级自定义项 小结一、 引言可能很多朋友都没有听说过VSTO这个东西的, 本人之前也同样也不知道的, 可是由于工作的原因接触了这方面, 由于VSTO方面国内的资料比较少, 本人刚开始学习的时候都是参考MSDN的, 可是上面很多资料都是英文的, 可能学习起来会比较慢点, 因此本人把最近一段时间学习的内容记录下来, 一来是作为一个巩固的学习笔记, 二来希望这些博客能

2、够帮助一些刚接触VSTO的朋友能够有所借鉴。讲了这么多废话(指的上面一些过渡的话), 到底VSTO到底是什么呢?这里我简单的概括下的VSTO是微软推出一种对Office产品进行操作的技术, 其中提供了一些类库来让开发人员能够更方便地开发出Office的解决方案,即对Word/Excel/Outlook实现一些扩展功能。对于VSTO的更多介绍大家能够参看该系列的第一篇博文。在这个专题将为大家介绍下, 如何创立Excel的解决方案?二、 创立VSTO项目对于刚接触VSTO的朋友来说, 可能根本就不知道如何去创立一个VSTO的项目的, 相信经过这个部分大家就会觉得是如此的简单。环境的搭建进行VSTO

3、开发的环境搭建是相当简单的, 只需要安装Visual Studio (当然安装VS 的时候在安装组件中必须勾选VSTO选择, 这个选项是默认勾上的。大家能够在安装VS的时候留意下)和Office 就能够, 当然VS 和Office 的安装也能够完成环境的搭建。创立第一个Excel工程来开始我们的VSTO之旅第一步, 选择新建项目-Visual C#-Office- , 然后选择Excel 外接程序(如何是英文版即Excel Add-in), 如下图: 从图中能够看到, 除了外接程序外, 还有Excel模板和Excel文档这两种项目类型, 她们的区别是 外接程序是应用程序级别的, 即如果你创立了

4、Excel 外接程序, 该程序对所有Excel应用都是有效的, 因为每次Excel的启动过程都会加载该插件(即该程序), 大家肯定留意到当我们启动Excel或Word的时候都会加载一些加载项, 其实这些加载项就是属于外接程序, 即插件, 启动过程见下面图: 而 文档和模板项目, 都是属于文档级别的程序, 该程序只对当前文档和模板有效, 创立这两种类型的项目, 会在项目的工程目录下会生成一个word文件(文档项目会生成一个 Document1.docx文件, 模板项目会生成一个Document1.dotx文件)。创立成功之后, 外接程序的项目文件结构见下图: 从图中能够看出, 刚创立的VSTO外

5、接程序都只有一个ThisAddIn.cs文件, 该文件即是一个宿主项(更多关于宿主项和宿主控件的内容能够查看该系列的第一篇博文), 我们能够经过这个文件来对Excel对象进行访问。同时该类中有ThisAddIn_Startup和ThisAddIn_Shutdown两个方法, 从两个方法中命名中能够知道, 如果你的代码想在加载外接程序时运行的话, 就放把代码放在ThisAddIn_Startup方法内容, 如果你想在外接程序卸载的时候运行你的代码, 就把这些代码放在ThisAddIn_Shutdown方法内。三、 Excel对象模型要开发Excel的项目, 就自然少不了对Excel对象模型的了解

6、了, 只有了解Excel对象模型, 这样才能更好地对Excel进行处理。下面先给出一张Excel对象模型的图: 下面就具体对上图中的各个对象做一个简单的介绍: Application对象Excel中的Application对象表示Excel应用程序, 该对象是所有Excel对象的根, 你能够经过Application对象, 获取到其它对象, 在外接程序中, 我们能够经过下面的方式来获得Application对象: Globals.ThisAddIn.ApplicationWorkbooks对象代表Workbook对象的集合, 而Workbook对象表示Excel中的单个工作簿, 我们能够经过下

7、面的方式来获得工作簿对象: Globals.ThisAddIn.Application.ThisWorkbookWorksheets对象代表Worksheet对象的集合, 而Worksheet代表的就是Excel中的表, 下面的代码能够获得Worksheet对象: Globals.ThisAddIn.Application.ThisWorkbook.ActiveSheet (激活的表, 每次打开一个Excel文件, 都是表一即sheet1被激活, 因此经过该代码就说获得表一对象)Range对象代表一个范围, 是操作Excel文档最常见的对象, 它能够表示为一个单元格、 一行、 一列或多个单元格

8、块( 能够连续, 也能够不连续) 的单元格选定范围, 甚至多个工作表中的一组单元格。可能上面的解释过于枯燥, 相信大家经过下图能够更好地理解Excel中的各个对象: 四、 创立Excel外接程序介绍完了Excel对象模型之后, 我们就能够利用这些对象来对Excel文档进行操作了, 下面就创立一个简单的Excel外接程序的。首先我们模拟一个需求, 大多说软件在使用时都会弹出一个欢迎界面, 这样我们就创立一个外接程序, 每次打开Excel文件时弹出一个欢迎界面,退出时弹出”谢谢使用”界面。我们只需要在上面的创立工程中介入下面的代码即可: using System.Windows.Forms;nam

9、espace MyExcelAddIn1 public partial class ThisAddIn private void ThisAddIn_Startup(object sender, System.EventArgs e) / 因为欢迎使用窗口要在打开Excel的时候弹出, 因此把下面代码放在Startup方法内 MessageBox.Show(欢迎使用Microsoft Excel); private void ThisAddIn_Shutdown(object sender, System.EventArgs e) / 在退出Excel的时候弹出谢谢使用窗口, 因此把下面的代码

10、放在Shutdown方法内 MessageBox.Show(谢谢使用! ); #region VSTO generated code / / Required method for Designer support - do not modify / the contents of this method with the code editor. / private void InternalStartup() this.Startup += new System.EventHandler(ThisAddIn_Startup); this.Shutdown += new System.Eve

11、ntHandler(ThisAddIn_Shutdown); #endregion 这样, 我们就完成了上面简单的一个模拟需求了, 下面让我们按F5来测试下效果吧! 按F5运行该程序时, 首先打开一个Excel之后, 一个欢迎界面就会弹出: 点击Excel窗口上的X按钮时, 就会弹出一个 ”谢谢使用! ”的窗口, 效果如下: 点击 Ok 按钮之后才会正常退出Excel。这样就完成了一个简单的Excel外接程序了, 上面提到过外接程序是应用程序级别的, 因此当你每次打开Excel的时候都会有这样的一个欢迎界面和关闭Excel时都有一个谢谢使用窗口,有些朋友想问了, 如果我想卸载这个插件怎么办呢?

12、 方法很简单, 只需要右键你的解决方案清理, 这样能够了, 另外你也能够从开发工具选项卡COM 插件, 在弹出的窗口中选择你自定义的插件 再按下移除按钮。具体步骤见下图: 五、 创立Excel文档级自定义项介绍完了创立Excel外接程序之后, 下面看看如何创立一个文档级的项目: 1. 新建一个Excel Workbook(即Excel工作簿)项目: 2. 单击 OK按钮, 在下面的窗口中单击 ”OK”按钮: 3. 在第一创立Excel工作簿项目是会弹出下面的一个窗口( 窗口意思为: 是否允许创立的项目访问VBA项目系统) , 此时我们只需要点击”Ok”就完成了Excel工作簿项目的创立。现在我

13、们来模拟一个需求, 比如现在有一个成绩单工作表, 我们希望获得各科目不及格同学的名字。此时我们只需要在上面创立的工作簿项目中添加一个ComboBox, 一个Button, 一个textbox。在button的Click事件中添加下面的代码: / 找出各科目不及格同学的名字 private void btnSearch_Click(object sender, EventArgs e) / 清除textbox中的内容 txtResult.Clear(); / 从复选框中获得选择的科目索引 int subjectIndex = cbxsubjects.SelectedIndex; if (subj

14、ectIndex = -1) MessageBox.Show(请先选择一个科目); return; / 获得选择的科目名称 string subjectName = cbxsubjects.SelectedItem.ToString(); / 获得工作表对象 Excel.Worksheet worksheet =(Excel.Worksheet)Globals.ThisWorkbook.ActiveSheet; for (int row = 2; row worksheet.UsedRange.Rows.Count+1; row+) Excel.Range rng =(Excel.Range)worksheet.Cellsrow,subjectIndex + 2; Excel.Range rng1 = (Excel.Range)worksheet.Cellsrow, 1; if (rng.Valu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号