其实VSTO就这么简单,你只需要三步就可以开启VSTO之旅了(以VS2019版为例)。
第一步:
- 如下图所示,创建新项目,选 Excel VSTO 外接程序:
- 配置新项目,项目名称,位置,解决方案名称等都可以按默认,然后点创建。
- 然后就出来如下的界面,这时程序自动在前面加了一系列的引用,比如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
第二步:
在类声明public partial class ThisAddIn下面的花括号下面紧接着输入:
Excel.Application eApp;
从这里开始,在ThisAddIn类的范围内,eApp就代表Excel程序了。
第三步:
在触发的事件里(比如窗体被加载,按钮被点击……)首先加入语句:
eApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
下面以ThisAddIn被加载(Startup)的事件为例来加入该语句:
完成后代码如下:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
eApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
}
完成后界面如下:
好了,经过以上三步你就已经开启了VSTO之旅了。
如何用呢?举个例子吧。
任务:将打开的Excel第1个工作表的A1单元格赋值为“CVSTO”,如何实现呢?
- 其实只需要在刚才的代码后面加一句:
eApp.Worksheets[1].Range["A1"]="CVSTO";
如下图所示:
- 按F5运行程序,程序启动Excel,我们可以看到这里打开的Excel的第1个工作表的A1单元格值变成了CVSTO了。
- OK,VSTO之旅已经开始,路上风景无数,待你去发掘。