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

时间:2012-03-03 14:07:31

标签: vb.net excel excel-2010

我在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

4 个答案:

答案 0 :(得分:3)

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

并添加以下内容:

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

答案 1 :(得分:2)

 Imports Microsoft.Office.Interop.Excel

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

 Imports Excel = Microsoft.Office.Interop.Excel

现在您可以毫不费力地使用 Excel.Application

VB.NET也允许这样做:

 Imports Microsoft.Office.Interop

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

答案 2 :(得分:1)

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

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

如果您坚持最初选择的路径,则需要捕获对当前运行的Excel应用程序实例(GetObject)的引用,或者为自己创建一个(CreateObject),如这样:

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

答案 3 :(得分:0)

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