从Excel表导入数据

使用MS VS 2013和SQL Server 2012

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

有错误是 –

其他信息:无法将“System .__ ComObject”types的COM对象转换为“Microsoft.Office.Interop.Excel.Worksheet”types的接口。 此操作失败,因为具有IID“{000208D8-0000-0000-C000-000000000046}”的接口的COM组件上的QueryInterface调用由于以下错误而失败:没有此类接口支持(exception来自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") 

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

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

..应该是可以的。

请参阅导入导出Excel文件中给出的示例

这个例子在VB.NET和我testing,它在我的电脑工作正常。

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

Excel到SQL Server