开始VSTO开发

我对VSTO开发的必要工具非常困惑。 具体而言,我想以编程方式操作Excel 2003/2007文档。 我以前做过很多的VBA ,如果你想把任何答案联系起来的话。

我有关于VSTO的几个问题:

  1. 我可以使用Visual Studio 2008速成版C#/ C ++吗?
  2. 我是否需要安装.NET框架?
  3. 生成的VSTO程序是否需要在同一个系统中安装Office的副本才能运行?

直接链接到相关的工具/插件/ IDE将不胜感激。

注意:我对VSTO和.NET完全陌生,但却是Office高级用户。 我有COM编程经验。

是的,它可能会让人困惑,特别是跳过级别的命名规则等等。基本上,你需要:

  • Visual Studio的完整版本(不是Express)和你的目标.NET版本。
  • 其中一个VSTO运行时间(VSTO 2003,VSTO 2005,VSTO 2005 SE,VSTO 2008,VSTO 2010)。 对于你的要求,VSTO 2005 SE可能是你最好的select。
  • 分发你的应用程序时,你需要更多,比如你的目标是PIA和.NET版本。 对于VSTO 2010,您不需要PIA(正在使用的内容将自动与您的应用程序一起打包)。

一些技巧:

  • 如果你已经在很大程度上使用了.NET,那么从Office内部的VBE到VSTO应该是一个平滑的过程。
  • 对于任何给定的程序(Excel,PowerPoint等),VSTO版本的对象模型都可能有更多的方法来做与VBA版本的对象模型不同/更好的事情。 例如,VSTO 2008中的Word的书签控件与通过VBA访问的控件的本地控件不同。
  • 分发你的应用程序可能是一个痛苦。 这就是VSTO for Visual Studio 2010不需要包含完整的interop(PIA)文件的原因。
  • 针对不同版本的Office提供相同的解决scheme在VSTO 2010之前并没有得到官方的支持。有些人已经讨论过这个问题,但是你不会从MSFT那里得到很多支持。

有一些网站你应该看看:

  • 要求VSTO解决scheme 。 这是较旧的,但有助于阅读2005年和2005年SE版本之间的差异。 也是体面的,因为它包括2008年的版本。
  • VSTO的在线资源 。 这是了解更多关于VSTO的好地方。
  • 入门(用于Office的Visual Studio工具) 。 这,这是姐姐的链接页面,是很好的跳页。 如果你只是想加快VSTO的速度,那就没什么用处,但是稍后会有所帮助。
  • 你能为多个版本的Office创build一个加载项吗? 。 这是较旧的,但讨论了有关build立多个版本的Office的一些问题。
  • 这个网站过去组织得比较好,但我总是发现video是一个非常快速的学习方式。 大多数这些video使用一个版本的VSTO。

最后,为了节省最后的成本,这是我刚开始阅读的一本书,它非常有帮助: VSTO for Mere Mortals(TM):一个VBA Microsoft Office Development开发指南使用Visual Studio 2005 Office工具

用于.NET的SpreadsheetGear是一个与Excel兼容的电子表格组件,可以与Visual Studio Express版本一起使用,需要.NET 2.0或更高版本,不需要安装Office或Excel,并且允许免费发行到无限数量的客户端和/或服务器计算机。

你可以在这里看到活的样品,并在这里下载免费试用。

免责声明:我自己的SpreadsheetGear LLC

您可以使用此Excel .NET组件使用Express Edition创buildExcel。 它不需要VSTO,ADO或MS Excel自动化。

Excel Jetcell .NET组件允许读取写入Excel电子表格。 在这里你可以find很多Excel VB.NET和C#的例子 。 例如,参见VB.NET代码来从数组中创buildexcel电子表格:

Imports DTG.Spreadsheet ... Dim WBook = New ExcelWorkbook() WBook.Worksheets.Add("ArrayValues") For i As Short = 0 To 10 For j As Short = 0 To 10 WBook.Worksheets(0).Cells[i,j].Value = arr(i,j) j = j + 1 Next j i = i + 1 Next i WBook.WriteXLSX("ExcelSpreadsheet.xlsx")