繁体   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