在VS2010中创建Excel项目
之前一直用Excel VBA进行二次开发,从.NET 4.0开始,通过VSTO对Office进行二次开发也非常方便,且功能比VBA更强大。
对Excel的二次开发通常有以下几种方式:
一是使用Excel内置的VBA进行开发。
二是使用VSTO进行开发。
从Excel 2007开始使用Ribbon界面,用VBA没办法控制功能区,使用VSTO比较方便。另外,VSTO使用VB或C#进行开发,代码的键壮性、安全性都更有保障。
在Visual Studio 2010中创建Excel项目的步骤如下:
1.启动 Visual Studio 2010。
2.在菜单中选择 “文件/新建/项目”命令,打开“新建项目”对话框。
3.在“模板”窗格中,展开 “Visual C#”(或 “Visual Basic”),然后展开 “Office/2010”,从对话框中看到可创建3种Excel项目:
- Excel 2010外接程序:为Excel 2010创建加载项项目。
- Excel 2010模板:为Excel 2010创建模板项目。
- Excel 2010工作簿:为Excel 2010创建工作簿项目。
Visual Studio 2010提供了两类项目模板:
- 文档级自定义项:这种类型的解决方案与特定文档相关联,前面提到的“Excel 2010模板”、“Excel 2010工作簿”就是这类模板。
- 应用程序级外接程序:这种类型的解决方案与应用程序本身相关联,前面提到的“Excel 2010外接程序”就是这类模板。
4.在项目模板列表中,选择 “Excel 2010 工作簿”。
5.在“名称”框中输入“FirstWorkbook”。
6.单击 “确定”,打开 “Visual Studio Tools for Office 项目向导”。
7.选择 “创建新文档”,然后单击 “确定”。
8.VS2010创建 FirstWorkbook项目。
从解决方案资源管理器中可看到,VS2010创建了多个文件:
FirstWorkbook.xlsx:表示项目中的 Excel 工作簿,包含所有的工作表和图表。
Sheet1.cs:表示工作簿中第一个工作表。
Sheet2.cs:表示工作簿中第二个工作表。
Sheet3.cs:表示工作簿中第三个工作表。
ThisWorkbook.cs:包含用于工作簿级自定义项的设计画面和代码(作用与VBA开发中的ThisWorkbook对象类似)。
9.接下来编写一下Hello world代码。在解决方案资源管理器中右键单击ThisWorkbook.cs,从弹出的快捷菜单中选择“查看代码”,可看到如下代码。
2 using System.Collections.Generic;
3 using System.Data;
4 using System.Linq;
5 using System.Text;
6 using System.Windows.Forms;
7 using System.Xml.Linq;
8 using Microsoft.Office.Tools.Excel;
9 using Microsoft.VisualStudio.Tools.Applications.Runtime;
10 using Excel = Microsoft.Office.Interop.Excel;
11 using Office = Microsoft.Office.Core;
12
13 namespace FirstExcelWorkbook
14 {
15 public partial class ThisWorkbook
16 {
17 private void ThisWorkbook_Startup(object sender, System.EventArgs e)
18 {
19 }
20
21 private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
22 {
23 }
24
25 #region VSTO 设¦¨¨计?器¡Â生¦¨²成¨¦的Ì?代䨲码?
26
27 /// <summary>
28 /// 设¦¨¨计?器¡Â支¡ì持?所¨´需¨¨的Ì?方¤?法¤¡§ - 不?要°a
29 /// 使º1用®?代䨲码?编À¨¤辑-器¡Â修T改?此ä?方¤?法¤¡§的Ì?内¨²容¨Y。¡ê
30 /// </summary>
31 private void InternalStartup()
32 {
33 this.Startup += new System.EventHandler(ThisWorkbook_Startup);
34 this.Shutdown += new System.EventHandler(ThisWorkbook_Shutdown);
35 }
36
37 #endregion
38
39 }
40 }
10.在ThisWorkbook_Startup中添加以下代码:
2
3 {
4
5 MessageBox.Show("Hello World!");
6
7 }
11.运行该项目,可看到Excel 2010将启动,然后弹出一个对话框,显示Hello World!。