首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始VSTO开发

开始VSTO开发
EN

Stack Overflow用户
提问于 2010-01-14 12:00:09
回答 3查看 12.4K关注 0票数 44

我对VSTO开发所必需的工具感到非常困惑。具体来说,我想以编程方式操作Excel 2003/2007文档。我以前做过很多VBA,如果您想将任何答案联系起来的话。

关于VSTO,我有几个问题:

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-14 14:49:59

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

  • Visual的完整版本(非速成)和您要获取的.NET版本。
  • VSTO运行时之一(VSTO 2003;VSTO 2005;VSTO 2005 SE;VSTO 2008;VSTO 2010)。就你的要求而言,VSTO 2005 SE可能是你最好的选择。
  • 在发布应用程序时,您将需要更多的应用程序,比如PIA和您所针对的.NET版本。对于VSTO 2010,您不需要PIA(您所使用的将自动与应用程序一起打包)。

以下是几条建议:

  • 如果您在很大程度上使用了.NET,那么从Office内部的VBE到VSTO应该是一个平稳的移动。
  • 任何给定程序(Excel、PowerPoint等)的对象模型的VSTO版本。与对象模型的VBA版本相比,可能有更多的处理方法不同/更好。例如,VSTO 2008中Word的Bookmark控件与本机通过VBA访问的Bookmark控件不一样。
  • 分发你的应用程序可能会很痛苦。这就是VSTO for Visual Studio 2010不要求您在包中包含完整的互操作(PIA)文件的原因。
  • 使用相同的解决方案来获取不同版本的Office并不是VSTO 2010之前的官方支持。有些人已经讨论过解决这个问题的方法,但你不会得到MSFT的太多支持。

有一些站点您应该看看:

  • 需求VSTO解决方案。这是旧的,但有助于阅读关于2005年和2005年SE版本之间的差异。这一个也很不错,因为它包含了2008年的版本。
  • VSTO在线资源。这是一个很好的‘跳转’网站,以了解更多关于VSTO。
  • 入门()。这是姐妹链接页面,是很好的跳转页面。如果您只是想加快VSTO的速度,那么就不是那么有用了,但是稍后会很好。
  • 您能为Office的多个版本构建一个外接程序吗?。这是旧的,但是讨论了为Office的多个版本构建相关的一些问题。
  • 本站过去组织得更好,但我总是发现视频是一种非常快速的学习方式。这些视频大多使用VSTO的一个版本。

最后,为了把最好的留到最后,这是我刚开始读的书,它非常有用:https://rads.stackoverflow.com/amzn/click/com/0321426711

票数 64
EN

Stack Overflow用户

发布于 2010-01-14 14:08:22

SpreadsheetGear for .NET是适用于.NET的与Excel兼容的电子表格组件,它将与Visual版本一起工作,需要.NET 2.0或更高版本,不需要安装.NET或Excel,并且允许向无限数量的客户端和/或服务器计算机免费发布版税。

您可以看到实时示例这里并下载免费试用版这里

免责声明:我拥有SpreadsheetGear有限责任公司

票数 4
EN

Stack Overflow用户

发布于 2011-06-21 12:19:04

您可以使用此Excel .NET组件使用速成版创建excel。它不需要VSTO、ADO或MS自动化。

Excel Jetcell .NET组件允许读写excel电子表格。在这里,您可以找到许多Excel VB.NET和C#示例。例如,请参见从数组创建excel电子表格的VB.NET代码:

代码语言:javascript
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2063866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档