понедельник, 13 февраля 2012 г.

Автоматическая загрузка из Excel средствами SSIS- проще простого


Задача организовать периодический импорт из выгружаемых файлов Excel в таблицу MS SQL server. Старые файлы для архива необходимо оставить.

Данную задачу легко решить, используя стандартные средства SSIS.

1.Поток данных
2. Задача сценарий, для переименования файлов.

В потоке данных выбираем «Источник Excel

В данном источнике выбираем  наш файл.
В сервер назначения указываем наш MS SQL Server, таблицу назначения, сопоставляем поля источника и назначения.
В объекте «сценарий» добавим текст скрипта по переименованию файла, я выбрал на языке VB:
      Try
       Rename("c:\TestExcel1.xls", "c:\TestExcel1_"+ Convert.ToString(Date.Now.Year()) _
                                         + "_" + Convert.ToString(Date.Now.Month()) _
                                                   + "_" + Convert.ToString(Date.Now.Day()) + ".xls")
        Catch ex As Exception
            My.Computer.FileSystem.WriteAllText("C:\load_from_excel_error.log", Convert.ToString(Now()) + " - Ошибка переименования файла или файла нет" + vbCrLf, True)

        End Try
После этого наш пакет SSIS должен работать и иметь следующий результата:
1  .       Загружает из файла Excel в БД MS SQL данные
2   .     Старый файл Excel переименовывается.

Все. Дальше можно настроить различные исключения, или поправить согласно вашим требованиям. Удачи.

1 комментарий :

  1. Коллега, каким образом можно импортировать бинарные данные как содержимое файла ексель, с целью вставки всего бинарного содержимого в поле varbinary(max) как прикрепленный файл? Столкнулся с необходимостью импорта нескольких тысяч файлов в виде поля data в моей бд crm, потом эта запись будет подтянута на страницу с задачами и прикрепленным файлом к активности

    ОтветитьУдалить