使用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并获得相同的结果。
任何想法
答案 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))。