技术开发 频道

Visual Studio 2010特性支持Office

  4. 将Excel表格嵌入Word文档
  Excel表格填充完成后,我们将这个表格嵌入到Word文档中。在主函数Main()的末尾添加如下代码,它将创建一个空的Word文档,然后通过调用函数PasteSpecial(),将Excel表格以链接的形式粘贴到Woed文档中:

var word = new Word.Application();
    word.Visible
= true;
    word.Documents.Add();
    word.Selection.PasteSpecial(Link:
true, DisplayAsIcon: true);

  这里需要说明的是,PasteSpecial()函数实际上有7个参数,这些参数都是可选的。如果是在C# 3.0中,我们必须全部给定这7个参数,不管这些参数是否真正需要。在C# 3.0中,PasteSpecial()函数的调用应该是这个样子:

// C# 3.0 code. Not necessary in C# 4.0!
object iconIndex = System.Reflection.Missing.Value;
object link = true;
object placement = System.Reflection.Missing.Value;
object displayAsIcon = true;
object dataType = System.Reflection.Missing.Value;
object iconFileName = System.Reflection.Missing.Value;
object iconLabel = System.Reflection.Missing.Value;
word.Selection.PasteSpecial(
ref iconIndex,
                            
ref link,
                            
ref placement,
                            
ref displayAsIcon,
                            
ref dataType,
                            
ref iconFileName,
                            
ref iconLabel);

  而在C# 4.0中,因为它支持了可选参数,使得原来需要15行代码才能完成的工作,现在只需要一行代码。大象减肥了!

  5. 运行解决方案
  到此为止,我们就完成了所有的开发工作,按下F5,运行整个解决方案,我们应该可以看到如下的运行结果:



图3 运行结果
 

  6. No-PIA部署
  开发完成后,最后的任务就是将应用程序部署到目标机器上。在以前的Office开发中,我们除了需要在目标机器上部署我们的应用程序之外,还需要部署一大堆应用程序运行必需的互操作程序集,这使得Office应用开发起来困难,想用起来也不简单。

  为了让大家理解Office应用程序对Office互操作程序集的依赖,我们可以使用IL DASM工具查看应用程序所引用的程序集。通过在Visual Studio命令行工具(Visual Studio command prompt)中执行ildasm命令,我们可以运行IL DASM工具,然后打开我们刚刚开发的应用程序OfficeDev.exe,可以看到如下的界面:



图4 使用IL DASM查看应用程序


  双击其中的“Manifest”,我们可以在弹出的窗口中看到应用程序对Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Word的引用:

0
相关文章