有史以来实现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 生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}

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

发布了7 篇原创文章 · 获赞 24 · 访问量 457

猜你喜欢

转载自blog.csdn.net/CVSTO/article/details/104227261