演练:Office 编程(C# 和 Visual Basic)

https://msdn.microsoft.com/zh-cn/library/ee342218(v=vs.110).aspx

PIA的全称是 primary interop assembly  主互操作程序集

http://www.cnblogs.com/pnljs/archive/2012/02/20/2359313.html

安装 Excel 外接应用程序

  1. 启动 Visual Studio。

  2. “文件”菜单上指向“新建”,再单击“项目”。

  3. “已安装的模板”窗格中,展开“Visual Basic”或“Visual C#”,展开“Office”,然后单击“2010”(如果使用的是 Office 2007,则单击“2007”)。

  4. “模板”窗格中,单击“Excel 2010 外接程序”(或“Excel 2007 外接程序”)。

  5. 查看“模板”窗格的顶部,确保“.NET Framework 4”显示在“目标框架”框中。

  6. 如果需要,在“名称”框中键入项目的名称。

  7. 单击“确定”。

  8. 新项目出现在“解决方案资源管理器”中。

添加引用

  1. “解决方案资源管理器”中,右击项目的名称,然后单击“添加引用”。 将显示“添加引用”对话框。

  2. “.NET”选项卡上的“组件名称”列表中选择“Microsoft.Office.Interop.Excel”14.0.0.0 版(对于 Excel 2007,则为 12.0.0.0 版),然后按住 Ctrl 键并选择“Microsoft.Office.Interop.Word”14.0.0.0 版(对于 Word 2007,则为 12.0.0.0 版)。

  3. 单击“确定”。

添加必要的 Imports 语句或 using 指令

  1. “解决方案资源管理器”中,右击“ThisAddIn.vb”或“ThisAddIn.cs”文件,然后单击“查看代码”。

将以下 Imports 语句 (Visual Basic) 或 using 指令 (C#) 添加到代码文件的顶部(如果这些语句尚不存在)。

using System.Collections.Generic;
using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;


清理完成的项目

  • 在 Visual Studio 中,单击“生成”菜单上的“清理解决方案”。 否则,每次在计算机上打开 Excel 时,外接程序都将运行。

查找 PIA 引用

  1. 重新运行应用程序,但是不要单击“清理解决方案”。

  2. “开始”菜单上,单击“所有程序”。 然后依次单击“Microsoft Visual Studio 2010”、“Visual Studio 工具”、“Visual Studio 命令提示(2010)”。

  3. 在“Visual Studio 命令提示(2010)”窗口中键入 ildasm,然后按 Enter。 此时将出现“IL DASM”窗口。

  4. 在 IL DASM 窗口中的“文件”菜单上,单击“打开”。 双击“Visual Studio 2010”,然后双击“项目”。 打开项目的文件夹,并查找 您的项目名称.dll 的 bin/Debug 文件夹。 双击 您的项目名称.dll。 一个新窗口将显示项目的特性,以及对其他模块和程序集的引用。 请注意,程序集中包括了命名空间 Microsoft.Office.Interop.Excel 和 Microsoft.Office.Interop.Word。 在 Visual Studio 2010 中,默认情况下编译器会将所需的类型从引用的 PIA 导入程序集中。

    有关更多信息,请参见如何:查看程序集内容

  5. 双击“清单”图标。 此时将出现一个包含程序集列表的窗口,这些程序集包含项目所引用的项。 列表中未包括 Microsoft.Office.Interop.Excel 和 Microsoft.Office.Interop.Word。 由于项目所需的类型已导入到程序集中,因此无需引用 PIA。 这样,部署会更加轻松。 PIA 不必位于用户的计算机上,并且,由于应用程序不需要部署特定版本的 PIA,因此可将应用程序设计为与多个版本的 Office 一起使用,只要所有版本中都有必要的 API 即可。

    由于不再必须要部署 PIA,因此,您可以在高级方案中创建与多个版本的 Office(包括早期版本)一起使用的应用程序。 但是,只有当您的代码未使用您所使用的 Office 版本中未提供的任何 API 时,此情况才适用。 由于不能总是清楚地了解特定 API 在早期版本是否可用,因此出于该原因,建议不要使用 Office 的早期版本。

原文地址:https://www.cnblogs.com/chucklu/p/4543890.html