Динамически загружать файлы.xlsx в ssis

Я создал SSIS для загрузки файлов Excel. Он просматривает указанную папку для соответствующих файлов и считывает данные в каждом файле в таблицу необработанных данных, а затем у меня есть сценарии SQL, которые выполняют проверку и помещают данные в соответствующие таблицы и т. Д., И все это прекрасно работает.

но теперь мне нужно сделать так, чтобы пакет ssis обрабатывал файлы Excel с 3 различными структурами файлов. то есть один файл будет иметь 50 столбцов, один будет иметь 55, а другой будет иметь 60.

Я пытался использовать задачу скрипта для загрузки данных

Insert into <rawdatatable> select * from openrowset('Microsoft.Jet.OLEDB.4.0','excel 8.0; database=D:\SSIS\FileToLoad.xlsx', 'Select * from [Sheet1$]')

но я продолжаю получать ошибку ниже, но добавление регистрации ошибок не дает никаких других ошибок

Исключение было сгенерировано целью вызова

введите описание изображения здесь

Я использую SQL Server 2014 и VS 2013

Я не совсем уверен, что я делаю здесь, любая помощь или руководство будут оценены

Спасибо

1 ответ

Решение

Вы должны использовать Microsoft.ACE.OLEDB.12.0 провайдер, попробуйте следующее:

Insert into <rawdatatable> 
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
                         'Excel 12.0;Database=D:\SSIS\FileToLoad.xlsx;HDR=YES', 
                         'SELECT * FROM [Sheet1$]')

Рекомендации

Другие вопросы по тегам