【问题标题】:Beginning VSTO Development开始 VSTO 开发
【发布时间】:2011-01-05 01:15:24
【问题描述】:

我很困惑VSTO 开发的必要工具是什么。具体来说,我想以编程方式操作 Excel 2003/2007 文档。我之前做过很多VBA,如果你想给出任何答案的话。

我对 VSTO 有几个问题:

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

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

注意:我是 VSTO 和 .NET 的新手,但我是 Office 高级用户。我有 COM 编程经验。

【问题讨论】:

    标签: .net vsto ms-office


    【解决方案1】:

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

    您可以查看实时示例here 并下载免费试用版here

    免责声明:我拥有 SpreadsheetGear LLC

    【讨论】:

    • .net 的电子表格工具很棒。 SO 太酷了——我们可以看到在这里发帖的人正在做一些非常棒的工作。到目前为止,我已经看到了 joel、jesse liberty 和现在的你!
    【解决方案2】:

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

    • Visual 的完整版(非 Express) Studio 和您定位的 .NET 版本。
    • VSTO 运行时间之一(VSTO 2003、VSTO 2005, VSTO 2005 SE, VSTO 2008, VSTO 2010)。对于您的要求,VSTO 2005 SE 可能是您最好的选择。
    • 分发应用程序时,您将 需要更多,例如您所针对的 PI​​A 和 .NET 版本。对于 VSTO 2010,您不需要 PIA(您正在使用的内容会自动打包到您的应用中)。

    几个提示:

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

    您应该看看一些网站:

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

    【讨论】:

    • 是的.. 感谢您花时间详细解释。得知自己无法工作,我有点难过。
    • 宅男先生的好答案(一如既往)
    【解决方案3】:

    您可以使用此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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2011-02-14
      • 2010-09-12
      相关资源
      最近更新 更多