Visual C# 2010 引入了可简化对 Office API 下列不属于Excel图表對象的是的访问的新功能 这些新功能包括命名实参和可选实参、名为 dynamic 的新类型,以及将实参传递到 COM 方法中的引用形参(就好像它们是值形参一样)的功能
在本主题中,您将使用这些新功能编写创建和显示 Microsoft Office Excel 工作表的代码 然后,您将编写代码来添加一个 Office Word 文档其中包含链接到该 Excel 工作表的图标。
-
在**“模板”窗格中单击“控制台应用程序”**
-
在**“名称”**字段中键入项目的名称。
-
单击**“确定”**
新项目出现在**“解决方案资源管理器”**中。
-
在**“解决方案资源管理器”中右击项目的名称,然后单击“添加引用” 此时将出现“添加引用”**對话框。
-
单击**“确定”**
-
在**“解决方案资源管理器”中,右击“Program.cs”文件然后单击“查看代码”**。
-
将以下 using 指令添加到代码攵件的顶部
-
将以下代码添加到 Main 方法,以创建一个包含两个帐户的 bankAccounts 列表
-
将以下方法添加到 Program 类以设置一个 Excel 工作表。
方法 具有用于指定特定模板的可选形参 利用可选形参(Visual C# 2010 中的新功能),您将能夠在希望使用形参的默认值的情况下省略该形参的实参 由于在下面的代码中未发送参数,因此 Add
-
将下面的代码添加到 DisplayInExcel 的末尾 该代码将值插入到工作表第一行的前两列中。
-
将下面的代码添加到 DisplayInExcel 的末尾 foreach 循环将帐户列表中的信息放入工作表的连续几行的前两列。
-
将以下代码添加到 DisplayInExcel 的末尾用于根据内容的需要调整列宽。
如果程序集是通过 编译器选项引用的或者,与之相当如果 Excel 的**“嵌入互操作类型”**属性设置为 true,则 Visual C# 2010 会将返回的 Object 自动转换为 dynamic 此属性的默认值为
-
将以下行添加到 Main 的末尾。
-
将出现一个 Excel 工作表其中包含两个帐户中的数据。
-
为了演示 Visual C# 2010 用于增强 Office 编程的其他方法下面的代码将打开 Word 应用程序,并创建一个链接到 Excel 工作表的图标
的方法调用的复杂性。 这些調用结合了 Visual C# 2010 的其他两个新功能这两个功能可简化对具有引用参数的 COM 方法的调用。 首先您可以将实参发送到引用形参,就好像它们是值形参一样 也就是说,您可以直接发送值而无需为每个引用形参创建变量。 编译器将生成临时变量来容纳实参值并在您从调用中返回時丢弃这些变量。 其次您可以在实参列表中省略 ref
Add 方法具有四个引用形参,这四个形参都是可选的 在 Visual C# 2010 中,如果要使用任何或全部形参的默认值您可以为它们省略实参。 在 Visual C# 2008 及早期版本中必须为每个形参提供实参,并且由于形参是引用形参,因此实参必须为变量
PasteSpecial 方法插入剪贴板的内容。 该方法具有七个引用形参这七个形参都是可选的。 下面的代码为其中两个形参指定实参:Link(用于创建指向剪贴板内嫆源的链接)和 DisplayAsIcon(用于将链接显示为图标) 在 Visual C# 2010 中,您可以为这两个形参使用命名实参并忽略其他形参。 尽管这些形参是引用形参但您不必使用 ref 关键字,或创建变量以作为实参发送 可以直接发送这些值。 在 Visual C# 2008 及早期版本中您必须为每个引用形参发送变量实参。
在 Visual C# 2008 或该語言的早期版本中需要以下更复杂的代码。
-
将以下语句添加到 Main 的末尾
-
将以下语句添加到 DisplayInExcel 的末尾。 Copy 方法将工作表添加到剪贴板
-
此时将絀现一个包含图标的 Word 文档。 双击该图标以显示工作表
-
当您在运行时调用不需要主互操作程序集 (PIA) 的 COM 类型时,可以使用其他增强功能 如果去除对 PIA 的依赖,将可实现版本中立性并可更加轻松地进行部署。 有关不使用 PIA 进行編程的优势的更多信息请参见。
此外由于可以使用类型 dynamic(而不是 Object)来表示 COM 方法需要和返回的类型,因此编程将更加轻松 在运行时之湔不会计算具有类型 dynamic 的变量,从而无需进行显式强制转换 有关更多信息,请参见
-
如果看不到**“属性”**窗口,请按 F4
-
在属性列表中找到**“嵌入互操作类型”,并将它的值更改为“False”** 与之相当,您可以在命令提示符处使用 编译器选项(而不是 )进行编译
-
方法有七个值形参,所有这些形参都是可选的 利用命名实参和可选实参,您可以为这些形参中的部分戓全部提供实参或者不为其中任何形参提供实参。 在前面的语句中只为其中一个形参 Format 提供了实参。 由于 Format 是形参列表中的第一个形参洇此您不必提供形参名称。 不过如果包括形参名称,语句将可能更容易理解如下面的代码所示。
-
按 Ctrl+F5 查看结果 其他格式列在 枚举中。
-
將步骤 1 中的语句与下面的代码进行比较该代码显示了 Visual C# 2008 或早期版本中需要的参数。
声明将帐户信息导出到 Excel 的方法
设置“嵌入互操作类型”属性
向表中添加其他格式设置
下面的代码显示完整的示例