版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1Excel处理的对象是1对于刚接触VSTO的朋友来说,可能根本就不知道如何去创建一个VSTO的项目的,相信通过这个部分大家就会觉得是如此的简单。
2环境的搭建3进行VSTO开发的环境搭建是相当简单的,只需要安装VisualStudio2010(当然安装VS2010的时候在安装组件中必须勾选VSTO选择,这个选项是默认勾上的。
大家可以在安装VS的时候留意下)和Office2010就可以,当然VS2008和Office2007的安装也可以完成环境的搭建。
4创建第一个Excel工程来开始我们的VSTO之旅5第一步,选择新建项目-VisualC#-Office-2010,然后选择Excel2010外接程序(如何是英文版即Excel2010Add-in),如下图:
67从图中可以看到,除了外接程序外,还有Excel模板和Excel文档这两种项目类型,他们的区别是外接程序是应用程序级别的,即如果你创建了Excel2010外接程序,该程序对所有Excel应用都是有效的,因为每次Excel的启动过程都会加载该插件(即该程序),大家肯定留意到当我们启动Excel或Word的时候都会加载一些加载项,其实这些加载项就是属于外接程序,即插件,启动过程见下面图:
89而文档和模板项目,都是属于文档级别的程序,该程序只对当前文档和模板有效,创建这两种类型的项目,会在项目的工程目录下会生成一个word文件(文档项目会生成一个Document1.docx文件,模板项目会生成一个Document1.dotx文件)。
10创建成功之后,外接程序的项目文件结构见下图:
1112从图中可以看出,刚创建的VSTO外接程序都只有一个ThisAddIn.cs文件,该文件即是一个宿主项(更多关于宿主项和宿主控件的内容可以查看该系列的第一篇博文),我们可以通过这个文件来对Excel对象进行访问。
同时该类中有ThisAddIn_Startup和ThisAddIn_Shutdown两个方法,从两个方法中命名中可以知道,如果你的代码想在加载外接程序时运行的话,就放把代码放在ThisAddIn_Startup方法内容,如果你想在外接程序卸载的时候运行你的代码,就把这些代码放在ThisAddIn_Shutdown方法内。
13三、Excel对象模型14要开发Excel的项目,就自然少不了对Excel对象模型的了解了,只有了解Excel对象模型,这样才能更好地对Excel进行处理。
下面先给出一张Excel对象模型的图:
1516下面就具体对上图中的各个对象做一个简单的介绍:
17Application对象Excel中的Application对象表示Excel应用程序,该对象是所有Excel对象的根,你可以通过Application对象,获取到其他对象,在外接程序中,我们可以通过下面的方式来获得Application对象:
Globals.ThisAddIn.Application18Workbooks对象代表Workbook对象的集合,而Workbook对象表示Excel中的单个工作簿,我们可以通过下面的方式来获得工作簿对象:
Globals.ThisAddIn.Application.ThisWorkbook19Worksheets对象代表Worksheet对象的集合,而Worksheet代表的就是Excel中的表,下面的代码可以获得Worksheet对象:
Globals.ThisAddIn.Application.ThisWorkbook.ActiveSheet(激活的表,每次打开一个Excel文件,都是表一即sheet1被激活,所以通过该代码就说获得表一对象)20Range对象代表一个范围,是操作Excel文档最常用的对象,它可以表示为一个单元格、一行、一列或多个单元格块(可以连续,也可以不连续)的单元格选定范围,甚至多个工作表中的一组单元格。
可能上面的解释过于枯燥,相信大家通过下图可以更好地理解Excel中的各个对象:
2122四、创建Excel外接程序23介绍完了Excel对象模型之后,我们就可以利用这些对象来对Excel文档进行操作了,下面就创建一个简单的Excel外接程序的。
24首先我们模拟一个需求,大多说软件在使用时都会弹出一个欢迎界面,这样我们就创建一个外接程序,每次打开Excel文件时弹出一个欢迎界面,退出时弹出谢谢使用界面。
25我们只需要在上面的创建工程中介入下面的代码即可:
1usingSystem.Windows.Forms;23namespaceMyExcelAddIn14{5publicpartialclassThisAddIn6{7privatevoidThisAddIn_Startup(objectsender,System.EventArgse)8{9//因为欢迎使用窗口要在打开Excel的时候弹出,所以把下面代码放在Startup方法内10MessageBox.Show(欢迎使用MicrosoftExcel);11}1213privatevoidThisAddIn_Shutdown(objectsender,System.EventArgse)14{15//在退出Excel的时候弹出谢谢使用窗口,所以把下面的代码放在Shutdown方法内16MessageBox.Show(谢谢使用!);17}1819#regionVSTOgeneratedcode2021///summary22///RequiredmethodforDesignersupport-donotmodify23///thecontentsofthismethodwiththecodeeditor.24////summary25privatevoidInternalStartup()26{27this.Startup+=newSystem.EventHandler(ThisAddIn_Startup);28this.Shutdown+=newSystem.EventHandler(ThisAddIn_Shutdown);29}3031#endregion32}33}这样,我们就完成了上面简单的一个模拟需求了,下面让我们按F5来测试下效果吧!26按F5运行该程序时,首先打开一个Excel之后,一个欢迎界面就会弹出:
2728点击Excel窗口上的X按钮时,就会弹出一个谢谢使用!的窗口,效果如下:
2930点击Ok按钮之后才会正常退出Excel。
这样就完成了一个简单的Excel外接程序了,上面提到过外接程序是应用程序级别的,所以当你每次打开Excel的时候都会有这样的一个欢迎界面和关闭Excel时都有一个谢谢使用窗口,有些朋友想问了,如果我想卸载这个插件怎么办呢?方法很简单,只需要右键你的解决方案清理,这样可以了,另外你也可以从开发工具选项卡COM插件,在弹出的窗口中选择你自定义的插件再按下移除按钮。
具体步骤见下图:
3132五、创建Excel文档级自定义项33介绍完了创建Excel外接程序之后,下面看看如何创建一个文档级的项目:
341.新建一个Excel2010Workbook(即Excel工作簿)项目:
35362.单击OK按钮,在下面的窗口中单击OK按钮:
37383.在第一创建Excel工作簿项目是会弹出下面的一个窗口(窗口意思为:
是否允许创建的项目访问VBA项目系统),此时我们只需要点击Ok就完成了Excel工作簿项目的创建。
3940现在我们来模拟一个需求,比如现在有一个成绩单工作表,我们希望获得各科目不及格同学的名字。
此时我们只需要在上面创建的工作簿项目中添加一个ComboBox,一个Button,一个textbox。
在button的Click事件中添加下面的代码:
1//找出各科目不及格同学的名字2privatevoidbtnSearch_Click(objectsender,EventArgse)3{4//清除textbox中的内容5txtResult.Clear();67//从复选框中获得选择的科目索引8intsubjectIndex=cbxsubjects.SelectedIndex;9if(subjectIndex==-1)10{11MessageBox.Show(请先选择一个科目);12return;13}1415//获得选择的科目名称16stringsubjectName=cbxsubjects.SelectedItem.ToString();17//获得工作表对象18Excel.Worksheetworksheet=(Excel.Worksheet)Globals.ThisWorkbook.ActiveSheet;1920for(introw=2;rowworksheet.UsedRange.Rows.Count+1;row++)21{22Excel.Rangerng=(Excel.Range)worksheet.Cells[row,subjectIndex+2];23Excel.Rangerng1=(Excel.Range)worksheet.Cells[row,1];24if(rng.Value60)25{26txtResult.Text+=rng1.Value+;;27}28}29if(txtResult.Text.Length==0)30
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版医药企业药品市场营销推广合同范本3篇
- 医院通信光缆敷设合同
- 智能教育清运施工合同
- 沿海公路扩建项目合同
- 包装加工工程安装施工承包合同
- 电力工程委托策划合同模板
- 家具制造招投标注意事项
- 2025版能源行业劳动合同安全生产与应急管理合同3篇
- 2024年物流园区停车场运营管理承包合同范本3篇
- 2024年牙科医疗器械公司与制造商关于义齿加工的合同
- 跨国公司财务管理课后习题答案
- 公园对地价和环境的影响
- 人教版(2019)高一物理必修第三册 13.5能量量子化 课件(共18张PPT)
- 新会计准则财务报表模板(带公式)
- 沟槽管件尺寸对照表
- 建模案例—飞行管理问题
- 美术教案雄伟的塔教学反思
- (完整版)复变函数与积分变换公式
- 境外汇款申请书(模板)
- JTG-G10-2016)公路工程施工监理规范
- 学习解读《生猪屠宰管理条例》专题讲授PPT课件
评论
0/150
提交评论