簡體   English   中英

從Excel工作表導入數據

[英]Importing data from excel sheet

使用MS VS 2013和SQL Server 2012

我正在編寫一個控制台應用程序,將excel中的一些數據復制到SQL表中。 我沒有走得太遠。 下面的代碼打開文件然后2-3秒后我收到錯誤。

有錯誤 -

附加信息:無法將“System .__ ComObject”類型的COM對象強制轉換為接口類型“Microsoft.Office.Interop.Excel.Worksheet”。 此操作失敗,因為由於以下錯誤,對IID為“{000208D8-0000-0000-C000-000000000046}”的接口的COM組件的QueryInterface調用失敗:不支持此類接口(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並獲得相同的結果。

有任何想法嗎

這一行:

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

..失敗,因為它將xlWorkSheetSrc定義為工作表,xlApp.Workbooks.Open返回一個工作簿,而不是工作表。 將其更改為:

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

..它應該沒問題。

請參閱導入導出Excel文件中給出的示例

這個例子在VB.NET和我測試過,它在我的電腦上工作正常。

我建議使用OleDB(ADO.NET)導入Excel數據並將該數據導出到SQL服務器(使用SqlConnection(ADO.NET))。

Excel到SQL Server

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM