【问题标题】:Importing data from excel sheet从 Excel 工作表导入数据
【发布时间】:2014-02-13 23:19:31
【问题描述】:

使用 MS VS 2013 和 SQL Server 2012

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

有错误-

附加信息:无法转换 COM 类型的对象 'System.__ComObject' 到接口类型 'Microsoft.Office.Interop.Excel.Worksheet'。此操作失败 因为接口的 COM 组件上的 QueryInterface 调用 使用 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 并得到相同的结果。

任何想法

【问题讨论】:

    标签: sql vb.net excel data-import


    【解决方案1】:

    这一行:

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

    .. 失败,因为它将 xlWorkSheetSrc 定义为工作表,并且 xlApp.Workbooks.Open 返回一个工作簿,它不是工作表。将其更改为:

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

    ..应该没问题。

    【讨论】:

      【解决方案2】:

      参考Importing Exporting Excel Files中给出的示例

      我在 VB.NET 中测试了这个示例,它在我的 PC 上运行良好。

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

      Excel To SQL Server

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 2012-09-09
        相关资源
        最近更新 更多