如何从Visual Basic .NET 2010中自动化Microsoft Excel 2010

我有我的数据库在VB2010中,我想推动从该数据库2表到MS Excel 2010.我遇到http://support.microsoft.com/kb/301982,但即使按照以下步骤后我得到一个错误:types“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 

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

并添加这些:

 Microsoft.Office.infoPath.Excel Microsoft.Office.Tools.Excel 
  Imports Microsoft.Office.Interop.Excel 

这意味着您使用的types名称只是简单的应用程序 ,而不是Excel.Application。 这会导致麻烦,但是这将是Winforms或WPF应用程序中模糊的types名称,它们也有一个名为Application的通用types。 这就是为什么你经常在示例代码中看到Excel.Application的原因。 Excel是一个命名空间别名。 你创build的是这样的:

  Imports Excel = Microsoft.Office.Interop.Excel 

现在你可以使用Excel.Application没有麻烦。

VB.NET也允许这样做:

  Imports Microsoft.Office.Interop 

但是这在C#中不起作用,名称空间别名会创build更多的可移植代码。 不知道这是否是重要的。

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

在服务器上安装Office通常是不可取的,即使您运行在最终客户端桌面环境中,您也不必担心安装的Office版本以及安装的其他客户端configurationvariables,以便每次都能成功执行。

如果坚持最初select的path,则需要捕获对当前正在运行的Excel应用程序实例(GetObject)的引用,或者为自己创build一个引用(CreateObject),如下所示:

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

这是一篇文章。 它总结了从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上出了问题。