开始VSTO开发

时间:2010-01-14 12:00:09

标签: .net vsto ms-office

我对VSTO发展的必要工具感到困惑。具体来说,我想以编程方式操作Excel 2003/2007文档。我以前做了很多VBA,如果你想找到任何答案的话。

我对VSTO的几个问题:

  1. 我可以使用Visual Studio 2008 Express Edition C#/ C ++吗?
  2. 我是否需要安装.NET框架?
  3. 生成的VSTO程序是否需要在同一系统中安装Office副本才能运行?
  4. 欢迎直接链接到相关工具/插件/ IDE。

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

3 个答案:

答案 0 :(得分:65)

是的,它会让人感到困惑,特别是考虑到跳过级别的命名约定等等。基本上,你需要:

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

一些提示:

  • 从Office内部的VBE开始 VSTO应该是一个平稳的举动 如果你在很大程度上使用了.NET。
  • 对象的VSTO版本 任何给定程序的模型(Excel, PowerPoint等等)可能有一些 更多的做事方式 与VBA不同/更好 对象模型的版本。对于 例如,Bookmark控件 VSTO 2008中的词语不一样 一个原生的 通过VBA访问。
  • 分发您的应用可能会很痛苦。 这就是Visual Studio 2010的VSTO不需要您的原因 包括完整的互操作(PIA)文件 与您的包裹。
  • 定位不同版本的 具有相同解决方案的办公室不是 2010年VSTO之前正式支持。有方法 一些人围绕这个问题 已经谈过,但你不会得到 来自MSFT的大力支持。

您应该看一些网站:

最后,为了保存最后的最佳内容,这是我刚刚开始时读到的这本书非常有帮助:VSTO for Mere Mortals(TM): A VBA Developer's Guide to Microsoft Office Development Using Visual Studio 2005 Tools for Office

答案 1 :(得分:4)

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

您可以查看实时样本here并下载免费试用here

免责声明:我拥有SpreadsheetGear LLC

答案 2 :(得分:0)

您可以使用此Excel .NET component在Express Edition中创建Excel。它不需要VSTO,ADO或MS Excel自动化。

Excel Jetcell .NET组件允许读取写入Excel电子表格。 在这里你可以找到很多Excel VB.NET and C# examples。例如,请参阅VB.NET代码以从数组创建Excel电子表格:

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")