使用MS VS 2013和SQL server 2012
我正在编写一个控制台应用程序,将一些数据从excel复制到SQL表中。我没走多远。下面的代码打开文件,然后2-3秒后我得到一个错误。
错误是-
其他信息:无法将'System.__ComObject‘类型的COM对象转换为接口类型'Microsoft.Office.Interop.Excel.Worksheet’。此操作失败,因为对IID‘{000208D8-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并得到了相同的结果。
任何想法
发布于 2014-01-23 04:18:34
这一行:
xlWorkSheetSrc = xlApp.Workbooks.Open("Folder path")
..is失败,因为它将xlWorkSheetSrc定义为工作表,而xlApp.Workbooks.Open返回的是工作簿,它不是工作表。改为:
xlWorkBookSrc = xlApp.Workbooks.Open("Folder path")
..and,应该没问题。
发布于 2014-01-23 04:17:27
参考导入导出Excel文件中给出的示例
这个例子在VB.NET和我进行了测试,它在我的PC上运行得很好。
我建议使用OleDB (ADO.NET)导入excel数据并将数据导出到server (使用SqlConnection (ADO.NET))。
https://stackoverflow.com/questions/21307679
复制相似问题