有史以来实现Excel外接程序最简单的教程

1、编程环境及编程语言

本教程的编程环境及编程语言如下:

  • 编程环境:Win7,Visual Studio 2017,Office 2016
  • 编程语言:C#

2 编程步骤

(1)新建一个Excel的外接程序

  • 打开Visual Studio 2017,点【文件】→【新建】→【项目】,即出现如下对话框
    在这里插入图片描述
  • 左边选择【Office/SharePoint】,右边选择【Excel 2013和2016 VSTO 外接程序 】,下面的【名称】【位置】【解决方案名称】等均可以按其默认值,然后单击【确定】,至此完成了新建一个Excel的外接程序,程序默认打开ThisAdddIn.cs文件,如下图所示,此时的Excel外接程序尚无任何功能。
    在这里插入图片描述

    (2)完成Excel外接程序的第一个功能

    按照下述步骤,完成【当程序运行时,使当前Excel的活动单元格的值变为"VSTO"】。
    • 在类的声明变量里首先声明一个公有的Excel应用程序对象变量
public Excel.Application ExceApp;

其中的public表示在当前的类里面是公有的一个声明, Excel.Application与数据类型等类似,此处表示“应用程序类型”,ExceApp相当于自定义的一个变量名(此时是应用程序名),名称可以自己随意定义。
这与VBA的public ExcelApp as Excel.Application是完全对应的。

完成后如下图所示:
在这里插入图片描述

  • 在程序的启动事件(Startup事件)中加入下列语句:
 ExcelApp = Globals.ThisAddIn.Application;

完成后,这个外接程序的Startup事件完整的代码如下:

private void ThisAddIn_Startup(object sender, System.EventArgs e){ExcelApp = Globals.ThisAddIn.Application;}

其中的ExcelApp = Globals.ThisAddIn.Application语句就是让对象变量ExcelApp取得Globals.ThisAddIn.Application 的控制权(控制开启的Excel),这与VBA中的Set ExcelApp=Application是意义相同。

  • 为当前Excel的活动单元格赋值"VSTO"

同样地,在程序的启动事件(Startup事件)中继续加入下列语句:

 ExcelApp.ActiveCell.Value= "VSTO";

如下图所示:
在这里插入图片描述

  • 按F5键运行程序后,这时程序会打开Excel,默认打开的Excel选中的为第一个工作表的A1单元格,程序已经自动将A1单元格的值赋值为“VSTO”,如下图所示,至此,我们完成了最简单的一个Excel外接程序。
    在这里插入图片描述

程序的完整代码(ThisAdddIn.cs文件)如下:

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;namespace ExcelAddIn1//这里是命名空间
{public partial class ThisAddIn//这里是类{//首先在这里声明公有的Excel应用程序对象变量public Excel.Application ExcelApp;private void ThisAddIn_Startup(object sender, System.EventArgs e){ExcelApp = Globals.ThisAddIn.Application;ExcelApp.ActiveCell.Value= "VSTO";}private void ThisAddIn_Shutdown(object sender, System.EventArgs e){}#region VSTO 生成的代码/// /// 设计器支持所需的方法 - 不要修改/// 使用代码编辑器修改此方法的内容。/// private void InternalStartup(){this.Startup += new System.EventHandler(ThisAddIn_Startup);this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);}#endregion}
}

知识共享许可协议
本作品采用知识共享署名 4.0 国际许可协议进行许可。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部