【问题标题】:How to automate Microsoft Excel 2010 from Visual Basic .NET 2010如何从 Visual Basic .NET 2010 自动化 Microsoft Excel 2010
【发布时间】:2012-03-03 14:07:31
【问题描述】:

我在 VB2010 中有我的数据库,我想将该数据库中的 2 个表推送到 MS Excel 2010。我遇到了http://support.microsoft.com/kb/301982,但即使按照这些步骤我也收到错误:键入“Excel.Application”是未定义。

Imports Microsoft.Office.Core
Imports Microsoft.Office.Interop.Excel
Imports System.Data

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
        Dim oXL As Excel.Application
        Dim oWB As Excel.Workbook
        Dim oSheet As Excel.Worksheet
        Dim oRng As Excel.Range
        '' etc...
    End Sub

End Class

【问题讨论】:

    标签: vb.net excel excel-2010


    【解决方案1】:

    尝试从菜单中添加引用:项目 >> 添加引用 >> .NET 选项卡

    并添加这些:

    Microsoft.Office.infoPath.Excel
    Microsoft.Office.Tools.Excel
    

    【讨论】:

      【解决方案2】:
       Imports Microsoft.Office.Interop.Excel
      

      这意味着您使用的类型名称只是普通的Application,而不是 Excel.Application。不过这会带来麻烦,这将是 Winforms 或 WPF 应用程序中的一个模棱两可的类型名称,它们也有一个名为 Application 的通用类型。这就是为什么您在示例代码中经常看到 Excel.Application 的原因。 Excel 是命名空间别名。您可以这样创建:

       Imports Excel = Microsoft.Office.Interop.Excel
      

      现在您可以毫无问题地使用 Excel.Application

      VB.NET 也允许这样做:

       Imports Microsoft.Office.Interop
      

      但这在 C# 中不起作用,命名空间别名会创建更多可移植代码。不确定这是否重要。

      【讨论】:

      • 即使使用 Imports Excel = Microsoft.Office.Interop.Excel 和 Imports Microsoft.Office.Interop,我也遇到了同样的问题:/
      • 您是否真的添加了程序集引用?您遇到的第一个错误是什么?
      • 是的,我添加了“Microsoft Excel 14.0 对象库”和“Microsoft Office 14.0 对象库”和“Microsoft Office 8.0 14.0 对象库”|第一个错误是“Dim oXL As Excel.Application”中的 Excel.Application 突出显示:未定义类型“Excel.Application”。
      【解决方案3】:

      使用直接 Excel 和其他办公自动化库需要在运行您的代码的机器上安装完整的产品。研究使用 NPOI 或其他 Excel 自动化库来完成相同的操作,而无需安装办公套件。

      通常不建议在服务器上安装 Office,即使您在终端客户端桌面环境中运行,您也必须担心安装的 Office 版本和安装的其他客户端配置变量才能成功每次执行。

      如果您坚持最初选择的路径,则需要捕获对当前正在运行的 Excel 应用程序实例 (GetObject) 的引用或创建一个供自己使用的引用 (CreateObject),如下所示:

       Set oXL = CreateObject("Excel.Application")
       oXL.Visible = True
      

      【讨论】:

        【解决方案4】:

        这是一篇文章。总结了VS2010对Excel的使用。 VS2010中也有一个例子。示例作品

        http://checktechno.blogspot.com/2013/01/all-you-need-to-know-with-visual-basic.html

        您还需要确保计算机已正确安装 Excel。你有 Excel 2010 Starter 还是普通版?

        正如 Tahbaza 所说,如果 CreateObject 失败,则意味着那台 PC 有问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-22
          • 1970-01-01
          • 2013-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多