2014-01-23 5 views
0

Использование MS VS 2013 и SQL сервер 2012Импорт данных из Excel лист

Я пишу консольное приложение, чтобы скопировать некоторые данные из Excel в таблицу SQL. Я не очень далеко. Код ниже открывает файл, затем через 2-3 секунды я получаю сообщение об ошибке.

Там ошибка -

Additional information: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Worksheet'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D8-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from 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 и получил тот же результат.

Любые идеи

ответ

2

Эта линия:

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

..is неудачу, потому что его xlWorkSheetSrc Определяет, как рабочий лист и xlApp.Workbooks.Open возвращается в рабочую книгу, которая не является Worksheet. Измените его на:

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

..и должно быть все в порядке.

+0

Cheers работал как шарм – Silentbob

0

см Пример приведен в Importing Exporting Excel Files

Этот пример в VB.NET и я проверил и это работает прекрасно в моем компьютере.

Я предлагаю использовать OleDB (ADO.NET) для импорта данных Excel и экспорта этих данных на SQL-сервер (используя SqlConnection (ADO.NET)).

Excel To SQL Server

Смежные вопросы