探讨VSTO项指标安顿,VSTO程序的布署和安装

在用windows installer安装VSTO程序时需求安装很多一无可取的事物:

Office主互操作程序集(PIA)
在打听怎么构建Office消除方案以前,您须要更详实地通晓在.NET中与Office对象模型通讯的托管程序集。用于与Office通话的托管程序集称为Office主互操作程序集(PIA)。

相似客户总计机专业水平不高,不过有一些Office水平相当了得,尤其对Excel的操作13分自如。因而只要能将产品的部分作用集成在Office中,将会有很好的根基。

(1) 确定保障客户机器上安装了.NET2.0Framework

如前所述,当你正在与.NET中的Office对象模型交谈时,您可以透过称为COM互操作的.NET技术与之交谈。
Office对象模型全体以公开COM接口的非托管代码(C和C
++)编写。要经过托管代码(C#或Visual
Basic)与那一个COM接口通话,您能够透过二个包装器举办通话,允许托管代码与Office的非托管COM接口实行互动操作。那个包装器是一组被编写翻译成1个称作主互操作程序集或PIA的顺序集的.NET类。

唯独出于客户安装的Office版本不一,所以VSTO项目标配备难点显得越来越重大,需求考虑很多难题。

(2)office2003(支持VSTO)

叙述那个程序集时使用“primary”一词,因为它们是经Office认同的用于与Office对象模型通讯的包装器。供给以此钦定,因为您能够使用.NET提供的工具(称为TLBIMP)为Office
COM对象模型成立自个儿的包装器。您自身创造的包装器称为互操作程序集(IA),而不是主互操作程序集。即便你恐怕会尝试使用TLBIMP并构建友好的互操作程序集,但除此之外Office提供的互操作程序集之外,您也不应当选择任何其他操作来展开Office开发。假如每一种开发人士都为自身的Office开发人士创造了上下一心的套装,那么没有Office化解方案得以与任哪个人的消除方案展开互操作;种种interop包装类,例如各类开发职员创立的Worksheet将被视为一种不一样的类型。就算自个儿创设的Interop程序集有2个Worksheet对象,并且您创立的Interop程序集全部3个Worksheet对象,小编不能够传递自笔者的Worksheet对象,也无法传递给您的Worksheet对象。大家需求选用同一的互操作程序集:主互操作程序集。

测试代码下载

(3)安装主互操作程序集(PIA)可从

不创制和睦的互操作程序集的第二个原因是Office已经对PIA进行了独特修复,以便在实施Office开发时使它们更好地干活。假诺您生成本身的,那么你很或者碰着在PIA中期维修复的标题。

本种类具有测试代码均在Visual Studio
二零一零 Ultimate SP1 + Office 二〇〇九 Professional Plus x64 SP1 上测试通过

http://www.microsoft.com/downloads/details.aspx?FamilyId=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en

安装PIA
Office 二零零三 PIA可通过Office 二零零零安装程序获得。 Office 贰零零贰PIA也能够看做Microsoft Windows
Installer包提供,您可以动用应用程序重新分发。要透过Office
二〇〇三安装程序安装Office 2001 PIA,进行设置时,请在Office
2004设置向导的首先步中当选“选用应用程序高级自定义”复选框。然后在教导的下三个显示器中体现的树控件中,您将在各类应用程序下边看看三个可编制程序序控制制器可用的.NET可编制程序性扶助节点,如图1-4所示。单击每一个那一个.NET可编制程序扶助节点,并确定保障您从作者的微机设置运转。其它,在树中的Office工具节点下,您或许须要启用Microsoft
Forms 2.0 .NET可编制程序协理和智能标记.NET可编制程序性支持。获取Office 二〇〇〇PIA的第三种办法是到位Office 二〇〇一all的安装,.NET可编制程序性协助将机关打开。

 

也得以通过下列步骤安装:

图片 1

差不多归结一下,首要有以下部分景色:

      安装 Office 主要互操作程序集

  1.      在“控制面板”中,选拔“添加或删除程序”。

  2. 在“近期安装的先后”列表中,采取“Microsoft Office”。

  3. 单击“更改”。

  4. 选择“添加或删除成效”,然后单击“下一步”。

  5. 选料“选拔高档应用程序自定义”,然后单击“下一步”。

  6. 进展“Microsoft Office Excel”,单击“.NET
    可编制程序性援助”旁边的框,然后单击“从本机械运输营”。

  7. 实行“Microsoft Office Outlook”,单击“.NET
    可编制程序性匡助”旁边的框,然后单击“从本机运转”。

  8. 举行“Microsoft Office Word”,单击“.NET
    可编制程序性援救”旁边的框,然后单击“从本机械运输营”。

  9. 拓展“Office 工具”,单击“Microsoft Forms 2.0 .NET
    可编制程序性支持”旁边的框,然后单击“从本机运维”。

  10.        在“Office 工具”下单击“智能标记 .NET
    可编制程序性援助”旁边的框,然后单击“从本机械运输营”。

  11. 在“Office 工具”下,展开“Microsoft Graph”,单击“.NET
    可编制程序性扶助”旁边的框,然后单击“从本机械运输转”。

  12. 依据同样的进度,为所需的别样其余 Office
    应用程序安装首要互操作程序集。

  13. 单击“更新”。

主要互操作程序集随即安装在大局程序集缓存中。

Office PIA安装到全局程序集缓存(GAC)。
GAC经常位于Windows目录的Assembly子目录中。

① 、Office版本差异

(4)安装VSTO运行库:

有八个Office PIA可用。 表1-4列出了最广泛的片段。
那里列出的叁个PIA是Office.dll
PIA,它是在Office应用程序(如CommandBar)之间共享的常见类型。

脚下珍视有Office 200③ 、Office 200柒 、Office 2008。

设置运维库

  1. style="font-family: Geneva, Arial, sans-serif; font-size: x-small;">在最终用户的计算机上安装
    

    .NET Framework 2.0。在装置 Visual Studio Tools for Office
    运营库此前必须安装 .NET Framework。

  2. style="font-family: Geneva, Arial, sans-serif; font-size: x-small;">在最终用户的计算机上运行
    

    VSTOR.exe。

    style="font-family: Geneva, Arial, sans-serif; font-size: x-small;">VSTOR.exe
    

    位居 Visual Studio Tools for Office 安装媒体中,也足以从
    Microsoft 下载主题 ( > style=”text-decoration: underline;”> > face=”Geneva, Arial, Sans-serif” color=”#800080″ size=”2″
    style=”color: #800080; font-family: Geneva, Arial, sans-serif; font-size: x-small;”>http://go.microsoft.com/fwlink/?linkid=49612&clcid=0x409
    > face=”Geneva, Arial, Sans-serif” size=”2″
    style=”font-family: Geneva, Arial, sans-serif; font-size: x-small;”>)
    获取可再发行组件包。

  3. style="font-family: Geneva, Arial, sans-serif; font-size: x-small;">如果
    

    Windows 具有非乌克兰(Ukraine)语设置,则可设置 Visual Studio Tools for Office
    语言包来以 Windows 使用的语言查看 Visual Studio Tools for Office
    运转库音信。借使最后用户在选取非斯洛伐克共和国(The Slovak Republic)语设置的 Windows
    上运维消除方案,则必须接纳语言包才能以 Windows
    使用的言语查看运维库音信。Visual Studio Tools for Office
    语言包可从 Microsoft 下载中心 ( > style=”text-decoration: underline;”> > face=”Geneva, Arial, Sans-serif” color=”#bc760e” size=”2″
    style=”color: #bc760e; font-family: Geneva, Arial, sans-serif; font-size: x-small;”>http://www.microsoft.com/downloads/details.aspx?FamilyID=d64ba959-82c5-42cd-9af7-bd57f6eff12c&displaylang=zh-cn
    > face=”Geneva, Arial, Sans-serif” size=”2″
    style=”font-family: Geneva, Arial, sans-serif; font-size: x-small;”>)
    获得。

(5)授予完全相信

图片 2

2、32位与64位的Office

① 、.NET FRAMEWO福特ExplorerK 2.0
配置布署

参考PIAs
添加对PIA的引用对于多数VSTO项目是不须求的,因为引用将电动为你添加。
本书中的控制台应用程序示例,例如自动化Excel的控制台应用程序示例能够键入Visual
Studio控制台项目并编译,但不能够不先添加对供给的PIA的引用。
要充分引用,请在Visual
Studio化解方案能源管理器中右键单击项目下的“引用”文件夹,如图1-5所示。
在右键单击“引用”文件夹时,从弹出的菜单中选用“添加引用”。

时下唯有Office 2009提供六13位版本。

首先必须对文书档案和顺序集都要完全信任,这即将再.NET FRAMEWO卡宴K 2.0
配置上边陈设一下

图片 3

三 、陆十一人操作系统安装叁10位的Office

再者要布署到电脑的安全级别里,布署到用户级别里是无用的。

采用出现的“加上引用”对话框的COM选项卡,如图1-6所示。
COM引用按组件名称列出,与表1-4中的描述列匹配。 由此,要增加对Excel
PIA的引用,请选用Microsoft Excel 11.0对象库,然后单击分明按钮将Excel
二零零二 PIA参考添加到品种中,如图1-6所示。

此时此刻多产出在新上市的记录簿,很多都是Win7 陆20位,安装了Office 200⑦ 、贰零零捌三十二人。

处理器--代码组--ALL CODE 点击ALL CODE右键新建筑和安装全策略。

图片 4

除此以外,差别VSTO项目标计划格局也差别。首要有如下一些VSTO项目项目:

选料满意的标准相似为U汉兰达L和站点,选拔站点的时候只供给输入站点的名号即可。UCR-VL也足以用*来代替某目录下的拥有文件

请留意图1-6中“添加引用”对话框的“COM”选项卡中的“路径”列展现PIA包装的COM库的门道。例如,Microsoft
Excel 11.0 Object
Library指向您的总括机上Excel.EXE可执行文件的岗位。当你选拔那几个引用并关闭对话框时,能够通过扩充类型中的“引用”文件夹,右键单击添加的引用,然后选取“属性”,来检查添加的实际上引用的习性。您将见到Visual
Studio计算出GAC中与你选取的COM对象相对应的PIA托管对象。在这种场地下,您将不会收获对Excel.EXE可执行文件的引用,而是GAC中的Microsoft.Office.Interop.Excel.dll。

一 、文书档案类型

U奇骏L用来安装DLL和XML文件的四处路径,DLL文件复制不了SHAREPOINT网站里,所以只好放在服务器的硬盘里,让客户端远程调用。

终极,请小心,就算你没有强烈添加对Microsoft Office 11.0 Object
Library(office.dll)的引用,也为您添加了一个引用。那是因为Excel 11.0
Object Library使用Microsoft Office 11.0 Object Library中的类型。 Visual
Studio检查和测试到那或多或少,并机关将所需的Office PIA添加到你的项目引用。

如Word Document、Excel Workbook

权力集设置为FULLtrust(完全相信)

浏览PIA
当您看看在Visual
Studio中的对象浏览器中引用的PIA时,您大概会发现本人很迷惑。对象浏览器展现了作为互操作包装器一部分成立的多多扶持对象。例如,考虑.NET
Interop对于类似简单的Excel
Application对象的引用。它成为2个多关系的尾部引用(7个头标准引用,36专断引用)。以下有所以下是在浏览器中与Excel
Application对象相关的集体项目:

2、AddIn类型

二 安全策略的打包:

Interfaces(接口

如Word AddIn、Excel AddIn

运维库安全策略右键,成立布局包,再选取总结机级别,添加安顿包名称后即可,安装的时候只须要双击,成功后

  • _Application

  • AppEvents

  • AppEvents_Event

  • Application

  • IAppEvents

3、Shared AddIn类型

不会并发其余提示。

Delegates(委托)

④ 、Excel自定义公式类型

只要不易配置了上述顺序后,即使还并未科学加载插件,那自身可就从不章程了,估摸又是微软的多个bug了,反便是小编经历上述配置后能正确加载插件。

  • AppEvents_*EventHandler (29 of them)

 

VSTO程序的布局和设置

Classes(类)

上边大家就来每一个研讨一下对应的配备方案。

  • AppEvents_SinkHelper (AppEvents)

  • ApplicationClass (_Application, Application, AppEvents_Event)

留意VS二〇〇九 只援救Office 200柒 、Office
二〇〇八,若要开发基于Office 二零零四的VSTO项目,请使用VS200伍 、VS二零零六。

此图片针对Chart,OLEObject,QueryTable,Worksheet和Workbook。

一 、待计划的品种是文书档案类型

我们品尝通过从Excel Application对象的原始COM定义向后工作来解开这几个纷乱。
Application对象的COM
coclass看起来像thisit有三个接口,叁个称作_Application的主接口和2个名为App伊夫nts的事件接口。
您能够将coclass视为定义COM类完毕的接口的东西。

1.① 、使用VS 2010创办二个Excel Workbook项目:

coclass Application {
        [default] interface _Application;
        [default, source] dispinterface AppEvents;
    };

图片 5

TLBIMP(用于处理Excel的COM类型库并应用PIA)直接导入_Application和App伊芙nts接口,因而这表明了种种类型中的三种来源何地。不过App伊芙nts界面不是很有用,就如像某种TLBIMP转换的工件。它必须特别处理,以创建后边描述的App伊夫nts_伊夫nt的另三个界面。

 

当TLBIMP处理COM
coclass时,它将开创一个名为ApplicationClass的.NET类,它经过得到coclass名称并附加Class命名。它还创制三个与名为Application的coclass同名的.NET接口。即使你在浏览器中查阅应用程序,它并未属于本身的特性和方法,但它来自与coclass相关联的其余三个接口:_Application和AppEvents_Event。

1.2、选择Office 2007格式.xlsx:

大家还并未解释App伊芙nts_伊芙nt接口来自哪个地方。当TLBIMP处理coclass上的App伊芙nts事件接口时,它会创立多少个帮衬项目。首先,它创立AppEvents_伊夫nt,它看起来像App伊夫nts,但事件和信托项目替换App伊夫nts中的方法。它还成立名为App伊芙nts_
*
EventHandler的代理,其中*是原始App伊芙nts界面上各类方法的方法名称。最后,它创立2个方可忽略的App伊夫nts_SinkHelper。

图片 6

那只会使IApp伊夫nts界面不或然解释。
TLBIMP间接导入此接口,因为它是Excel类型库中的公共项目。你也得以忽略那几个。那实在是App伊芙nts的双重,除了App伊芙nts在类型库中注解为dispinterface,而IApp伊芙nts被声称为再一次接口类型。

 

那正是说您真的采Nash么?基本上,你应有只在代码中使用Application接口(派生自_Application和AppEvents_Events)和代理。你平日能够假装旁人不设有。此规则的贰个区别是当方法和事件名称相争论,如本章前面所述。要在要连接受事件时要调用该格局或App伊夫nts_伊夫nt接口的点子和事件之间化解歧义,则必须将其更换为_Application接口。表1-5付出了1个总计。

1.三 、在贰个行事表中放置一个按钮:

图片 7

图片 8

由TLBIMP为coclass成立的应用程序接口以诙谐的点子展现。
您能够在C#中编辑代码,使其看起来像您正在创制应用程序界面包车型地铁1个实例,大家都晓得那是不可能的:

 

Excel.Application myApp = new Excel.Application();

1.④ 、在其单击事件中弹出3个对话框:

诚然,那是在背后使用ApplicationClass的语法糖(应用程序界面归因于将其与ApplicationClass相关联)来创设一个Excel
Application对象并重临相应的接口。

图片 9

说到底,大家面前提到这一个情势对于Chart,OLEObject,QueryTable,Worksheet和Workbook都以再一次的。
图表映射是带Chart伊芙nts的图样和App伊夫nt的一直应用程序,您将得到一般的想法。
工作表有点不相同 它的coclass看起来像这么:

 

 

1.伍 、F5运作,会打开Excel,点击按钮弹出我们盼望见到的音信:

coclass Worksheet {
        [default] interface _Worksheet;
        [default, source] dispinterface DocEvents;
    };

图片 10

为此对于工作表,使用Worksheet替换Application,而是将App伊夫nts替换为Doc伊芙ntsyielding
Doc伊芙nts_ * 伊芙ntHandler作为WorkSheet事件的代办。

 

QueryTable甚至是极端。 它的coclass看起来像这么:

1.⑥ 、在Debug目录下会发现生成了如下那些文件:

coclass QueryTable {
        [default] dispinterface _QueryTable;
        [default, source] dispinterface RefreshEvents;
    };

图片 11

所以对于QueryTable,使用QueryTable替换Application,并将App伊夫nts替换为Refresh
伊芙nt,从而生成RefreshMents * 伊芙ntHandler作为QueryTable事件的信托。

是因为是文书档案类型,因而生成八个Excel工作簿很健康。有一个.vsto格式的文本很少见,它正是VSTO项目配置时的安装文件。

Dummy方法

当你在Visual Studio中的对象浏览器中查看Excel
PIA时,您或然会小心到中间涵盖文本Dummy的大方主意。甚至有三个名为IDummy的界面。

不,那不是Excel的污辱你的灵性的章程。一切都以虚拟的,它是一种测试方法,在Microsoft的内部“调节和测试”版本中实际具有法定指标和更具描述性的称谓。例如,Application.Dummy6在Excel的调节和测试版本中称之为Application.DebugMemory。在Excel的零售版本中,每个方式都重命名为Dummy。这么些Dummy方法中的全体508事实上都在调节和测试Excel中做了一些事务,不过在零售版本的Excel中,除了在调用时引发错误,它们如何都不做。

Excel将那么些标记为“隐藏”,但C#对象浏览器暗中认可呈现隐藏方法。当你在C#对象浏览器中查阅PIA时,您将看到这几个Dummy方法。假如创建Visual
Basic项目,Visual Basic对象浏览器将潜伏具有此属性的主意和品质。

 

结论
本章介绍了Office对象模型,并研究了指标模型的为主协会。
您读书了什么样使用对象,集合和枚举在其余对象模型中找到的主导项目。
您还学习了怎么运用Office对象模型中的对象和集合公开的属性,方法和事件。

本章介绍了将Office对象模型揭发给.NET代码的Office主互操作程序集。
您读书了怎么在Visual Studio项目中运用和引用Office PIA。
本章还介绍了在指标浏览器中查看PIA时方可忽略的内容。

下一章将起来切磋Office编制程序中利用的着力支出格局,并提供种种示例。

 

.vsto文件其实是3个XML文件,用文件编辑器打开药方可知见具体内容:

图片 12

含有了VSTO项指标切切实实消息,如.NET运维时版本,重视的程序集,数字签名等音信,不要手动修改这几个文件。

.NET运营时为4.0,所以客户端首先要安装.NET
Framework 4.0。

.vsto的默许打开格局是Visual Studio Tools For Office Execution Engine:

图片 13

该器件包括于Visual Studio Tools For Office
运转时,因而客户端若要运转VSTO程序,还索要设置Visual Studio Tools For
Office 运维时。

Visual Studio 2010 Tools for Office Runtime 可以在这里下载。

 

1.⑦ 、笔者用了二个虚拟机模拟客户端,安装了.NET 4.0和Office
2008后就可以打开.vsto了:

图片 14

 

1.⑧ 、安装成功后就能够打开Debug中的Excel文件了:

图片 15

留神文书档案类型的VSTO项目安装后只对发表的3个文书档案有效(只对Debug中的Excel有效),不影响用户其余的Office文件,即文书档案类型项目不是全局性的。

 

1.⑨ 、在控制面板中得以将该VSTO项目卸载:

图片 16

 

② 、待安排的项目是Add In类型

2.壹 、新建3个Word Add In项目:

图片 17

 

2.二 、添加3个可视化Ribbon:

图片 18

 

2.叁 、Ribbon中添加3个按钮:

图片 19

 

2.4、单击弹出对话框:

图片 20

 

2.⑤ 、F5运营后会打开Word:

图片 21

 

2.六 、在Debug目录中会生成一些文书:

图片 22

 

2.七 、客户端依旧需求安装.NET 4.0、Visual Studio 二〇一〇 Tools For Office
Runtime才能运作该VSTO项目:

图片 23

在意Add In
类型是全局性的,只要安装,用户无论打开一个Office文档都会包罗该Add In。

 

三、Shared AddIn类型

所谓Shared
AddIn,便是该插件能够被各个Office文书档案共用,然则一般都以对准一种Office文书档案开发。

3.一 、创立一个Shared AddIn项目:

图片 24

 

3.贰 、这里笔者选取只针对Excel:

图片 25

 

3.3、设置加载属性:

图片 26

 

3.肆 、私下认可有四个连串,二个是插件,另2个是MSI安装项目:

图片 27

此处大家只谈陈设,关于怎么着开发相关的连串请参见其余资料。

添加System.Windows.Forms的引用,然后在Connect.cs中的OnStartupComplete事件中弹出一个对话框:

图片 28

 

3.五 、设置安装项目性质:

图片 29

专注TargetPlatform没有AnyCPU,故需求针对x8六 、x61分别编写翻译一份MSI安装文件。

 

3.⑥ 、设置安装项目运作依赖组件:

图片 30

此处能够安装必要.NET Framework 4.0:

图片 31

 

在安装项目属性页中的【Prerequisites】中能够安装更加多的运维重视组件:

图片 32

 

3.柒 、设置实现后编写翻译安装项目,会变卦对应的MSI安装包:

图片 33

 

3.八 、直接在装置项目右击àInstall即能够设置:

图片 34

设置完后打开四个Excel就会看到大家的对话框:

图片 35

 

四 、Excel自定义公式类型

因此把Excel自定义公式类型单独拿出以来,是因为Excel自定义公式的挂号有个别与众差别,尤其是Excel
二零一零 x64。

4.壹 、创立3个类库项目:

图片 36

 

4.② 、写加减乘除四个函数和COM注册、反注册函数:

图片 37View Code 

using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;

namespace ExcelUDF
{
    [Guid(“E72F44C7-DD4A-4FA2-BC32-4EA9925749DB”)]
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ComVisible(true)]
    public class ExcelUDF
    {
        public int Add(int a, int b)
        {
            return a + b;
        }

        public int Subtract(int a, int b)
        {
            return a – b;
        }

        public int Multiply(int a, int b)
        {
            return a * b;
        }

        public int Divide(int a, int b)
        {
            return a / b;
        }

        #region COM Related

        [ComRegisterFunction]
        public static void RegisterFunction(Type type)
        {
            Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type, “Programmable”));
            var key = Registry.ClassesRoot.OpenSubKey(GetSubKeyName(type, “InprocServer32”), true);
            key.SetValue(“”, Environment.SystemDirectory + @”\mscoree.dll”, RegistryValueKind.String);
        }

        [ComUnregisterFunction]
        public static void UnregisterFunction(Type type)
        {
            Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type, “Programmable”), false);
        }

        private static string GetSubKeyName(Type type, string subKeyName)
        {
            var s = new System.Text.StringBuilder();
            s.Append(@”CLSID\{“);
            s.Append(type.GUID.ToString().ToUpper());
            s.Append(@”}\”);
            s.Append(subKeyName);
            return s.ToString();
        }
        #endregion
    }

 

4.③ 、作者设置的是Excel x64,必要手动注册自定义公式的程序集,为此在品种性质中的Build 伊夫nts中写入批处理脚本来自动注册:

%windir%\Microsoft.NET\Framework64\v4.0.30319\regasm /codebase “$(TargetPath)”

万一是Excel x86,那样注册:

%windir%\Microsoft.NET\Framework\v4.0.30319\regasm /codebase “$(TargetPath)”

计划到客户端时须求履行这一个批处理脚本。

 

如此那般在每便编写翻译成功后就会活动注册该自定义公式。

图片 38

4.四 、在转变管理器中配置为 x64:

图片 39

4.五 、在Ribbon项目中添加调用自定义公式的代码:

using Microsoft.Office.Tools.Ribbon;

namespace ExcelAddIn
{
    public partial class RibbonDemo
    {
        private void RibbonDemo_Load(object sender, RibbonUIEventArgs e)
        {

        }

        private void btnAdd_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Add()”;
        }

        private void btnSubtract_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Subtract()”;
        }

        private void btnMultiply_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Multiply()”;
        }

        private void btnDivide_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Divide()”;
        }
    }

4.陆 、修改Ribbon项目性质,将 Excel设置为运行的扩展程序:

图片 40

4.七 、编写翻译、运维,会调用Excel来打开,自动加载咱们的插件ExcelAddIn:

图片 41

4.捌 、激活自定义公式:

在【Developer】选项卡中式点心击【Add-Ins】,再点击【Automation】找到大家编辑的自定义公式,【OK】。

图片 42

4.九 、此时在Excel中就能够利用我们的公式了;

图片 43

   

小结:

一 、若客户使用的关键是Office 2001,则动用VS二零零六支出(.NET
3.5);若客户选用Office 2006或更新版本,则使用VS二〇〇九来开发。(.NET 4.0)

② 、一般的安装顺序为:

.NET Framework –> Visual Studio Tools For Office Runtime à MSI或.vsto

③ 、安装从前最好将本来版本卸载,若.vsto出现无法安装的景况,则足以应用Mage.exe清理一下缓存再品尝安装。

命令行下执行:mage -cc

 

Mage.exe是Windows SDK中的二个小工具,安装完Windows SDK后默许位于:

C:\Program Files (x86)\Microsoft SDKs\Windows\xx\Bin     àWindows x64

C:\Program Files\Microsoft SDKs\Windows\xx\Bin     àWindows x86

里头xx是Windows SDK的本子号,如v6.0A、v7.0A、v7.1等。

 

 使用VSTO开发提议客户端安装Office
二〇〇六或更新版本,因为VSTO自身正是对Office
二零零五或更新版本量身定制的。Office 贰零零肆由于历史遗留难点,难以适应新架设。

对此须求辅导客户,固然客户是上帝,不过一旦能说服客户升级Office,则对用户体验和项最近期的升迁维护有综上说述的补益。