1.首先需要安裝VS,然后把需要的模塊一起安裝.
2.新建項(xiàng)目,VSTO外接程序.

1.png
3.新建好項(xiàng)目之后會(huì)生產(chǎn)以下代碼
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
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO 生成的代碼
/// <summary>
/// 設(shè)計(jì)器支持所需的方法 - 不要修改
/// 使用代碼編輯器修改此方法的內(nèi)容。
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}
這些代碼由項(xiàng)目自動(dòng)生成,可以現(xiàn)在可以不用管他.
4.現(xiàn)在開(kāi)始做插件,首先右鍵項(xiàng)目添加新項(xiàng):選擇office/SharePoint下的功能區(qū)(可視化設(shè)計(jì)器)如下圖:

2.jpg
新建好了之后會(huì)有一個(gè)功能區(qū)給你,然后可以在上面增加各種控件,如下圖:

3.png
然后我們?cè)诠δ軈^(qū)點(diǎn)擊右鍵屬性,可以在右邊看到它的各種設(shè)定,如果有需要可以隨意修改,現(xiàn)在我們來(lái)新建一個(gè)按鈕然后給按鈕添加事件,具體操作如下:

4.png
直接把按鈕拖進(jìn)去,最后右鍵查看代碼就會(huì)跳轉(zhuǎn)到按鈕定義的事件代碼里邊去了.
5.然后我們?cè)诶锩嫣砑哟a,代碼如下:
//獲取當(dāng)前活動(dòng)的應(yīng)用程序
Application app1 = Globals.ThisAddIn.Application;
app1.Visible = true;
//獲取當(dāng)前活動(dòng)的活動(dòng)頁(yè)
_Workbook wb = app1.ActiveWorkbook;
//獲取當(dāng)前的sheet
Worksheet sheet1 = wb.Sheets[1];
// 獲取當(dāng)前頁(yè)面A1的值,并修改
Range rng = sheet1.get_Range("A1", Type.Missing);
rng.Value2 = "hello";
由于百度上,官網(wǎng)上的實(shí)例代碼全都是新建工作簿的方式修改,所以我這里把代碼修改了下,改為了修改當(dāng)前打開(kāi)的工作簿的內(nèi)容.
6.最后點(diǎn)啟動(dòng),會(huì)自動(dòng)啟動(dòng)excel,然后新建工作簿,然后會(huì)看到以下界面

5.png
然后點(diǎn)擊剛才我們新建的按鈕,A1的值就被修改成了Hello了.
7.一個(gè)簡(jiǎn)單的Excel插件建立好了之后,還需要給別人的電腦安裝使用才行,這個(gè)時(shí)候就需要用到VS的發(fā)布功能了,然后我們點(diǎn)擊項(xiàng)目右鍵發(fā)布功能,會(huì)彈出一個(gè)發(fā)布向?qū)?

6.png
先指定好位置,然后下一步,會(huì)彈出個(gè)用戶安裝位置,這時(shí)我們選最后一個(gè)從CD-rom里面安裝:

7.png
下一步,最后點(diǎn)完成,這樣我們就會(huì)在目標(biāo)文件夾里面得到1個(gè)文件夾2個(gè)安裝文件如圖:

8.png
這時(shí)就可以把這三個(gè)東西復(fù)制給別人用來(lái)安裝了,安裝成功后就會(huì)出現(xiàn)第5張圖的界面了.
8.最后附上新建的按鈕控件完整代碼:
using System;
using Microsoft.Office.Tools.Ribbon;
using Microsoft.Office.Interop.Excel;
namespace ExcelAddIn1
{
public partial class Ribbon1
{
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
}
private void button1_Click(object sender, RibbonControlEventArgs e)
{
//獲取當(dāng)前活動(dòng)的應(yīng)用程序
Application app1 = Globals.ThisAddIn.Application;
app1.Visible = true;
//獲取當(dāng)前活動(dòng)的活動(dòng)頁(yè)
_Workbook wb = app1.ActiveWorkbook;
//獲取當(dāng)前的sheet
Worksheet sheet1 = wb.Sheets[1];
// 獲取當(dāng)前頁(yè)面A1的值,并修改
Range rng = sheet1.get_Range("A1", Type.Missing);
rng.Value2 = "hello";
}
}
}
純手打記錄,如果有問(wèn)題可在下方留言.