从Excel工作表导入数据

时间:2014-01-23 12:06:54

标签: sql vb.net excel data-import

使用MS VS 2013和SQL Server 2012

我正在编写一个控制台应用程序,用于将excel中的一些数据复制到SQL表中。我没有走得太远。下面的代码打开文件,然后在2-3秒后出现错误。

错误是 -

  

附加信息:无法转换类型的COM对象   'System .__ ComObject'到接口类型   'Microsoft.Office.Interop.Excel.Worksheet'。此操作失败   因为QueryInterface调用COM组件的接口   由于IID'{000208D8-0000-0000-C000-000000000046}'失败了   以下错误:不支持此类接口(来自HRESULT的异常:   0x80004002(E_NOINTERFACE))。

Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop
Imports System.Data.SqlClient
Imports System.IO

Module Module1

    Sub Main()

        Dim xlApp As Application
        Dim xlWorkBookSrc As Excel.Workbook
        Dim xlWorkBookDest As Excel.Workbook
        Dim xlWorkSheetSrc As Excel.Worksheet
        Dim xlWorkSheetDest As Excel.Worksheet
        xlApp = New Excel.Application
        xlApp.Visible = True

        xlApp.DisplayAlerts = False


        xlWorkSheetSrc = xlApp.Workbooks.Open("Folder path")
        xlWorkSheetSrc = xlWorkBookSrc.Worksheets("Spectrometer")


    End Sub

End Module

当文件打开时,我不知道为什么然后我会收到错误。 excel表是一个.xls,但我也尝试使用.xlsx并获得相同的结果。

任何想法

2 个答案:

答案 0 :(得分:2)

这一行:

xlWorkSheetSrc = xlApp.Workbooks.Open("Folder path")

..失败,因为它将xlWorkSheetSrc定义为Worksheet而xlApp.Workbooks.Open返回的是一个Workbook,它不是一个Worksheet。将其更改为:

xlWorkBookSrc = xlApp.Workbooks.Open("Folder path")

..它应该没问题。

答案 1 :(得分:0)

参考Importing Exporting Excel Files

中给出的示例

VB.NET中的这个例子和我测试过,它在我的电脑上工作正常。

我建议使用OleDB(ADO.NET)导入Excel数据并将该数据导出到SQL服务器(使用SqlConnection(ADO.NET))。

Excel To SQL Server