Поделиться через


Источник Excel

Источник Excel извлекает данные из листов или диапазонов ячеек в рабочих книгах Microsoft Excel.

Источник Excel предоставляет четыре разных режима доступа к данным для извлечения данных:

  • Таблица или представление.

  • Таблица или представление, указанное в переменной.

  • Результаты инструкции SQL. Запрос может быть параметризованным запросом.

  • Результаты инструкции SQL, хранящейся в переменной.

Это важно

В Excel лист или диапазон эквивалентен таблице или представлению. Список доступных таблиц в редакторах источника и назначения Excel отображает существующие листы (идентифицируемые знаком $, добавленные к имени листа, например Sheet1$) и именованные диапазоны (идентифицируемые отсутствием знака $, например MyRange). Дополнительные сведения см. в разделе "Рекомендации по использованию".

Источник Excel применяет диспетчер соединений Excel для подключения к источнику данных, а диспетчер соединений определяет файл книги, который будет использован. Дополнительные сведения см. в разделе "Диспетчер соединений Excel".

Источник Excel имеет один регулярный вывод и один вывод ошибок.

Особенности использования

Диспетчер соединений Excel использует поставщик Microsoft OLE DB для Jet 4.0 и его Excel-драйвер ISAM (индексированного последовательного метода доступа) для подключения к источникам данных Excel, чтения и записи в них данных.

Многие существующие статьи базы знаний Майкрософт документируют поведение этого поставщика и драйвера, и хотя эти статьи не относятся к службам Integration Services или его предшественнику Службам преобразования данных, может потребоваться знать о некоторых действиях, которые могут привести к непредвиденным результатам. Общие сведения об использовании и поведении драйвера Excel см. в статье HOWTO: использование ADO с данными Excel из Visual Basic или VBA.

Следующее поведение поставщика Jet с драйвером Excel может привести к непредвиденным результатам при чтении данных из источника данных Excel.

  • Источники данных. Источником данных в книге Excel может быть лист, к которому должен быть добавлен знак $(например, Sheet1$), или именованный диапазон (например, MyRange). В инструкции SQL имя листа должно быть разделено (например, [Лист1$]), чтобы избежать синтаксической ошибки, вызванной знаком $. Построитель запросов автоматически добавляет эти разделители. При указании листа или диапазона драйвер считывает смежный блок ячеек, начиная с первой непустой ячейки в левом верхнем углу листа или диапазона. Поэтому в исходных данных нельзя содержать пустые строки или иметь пустую строку между строками заголовка или шапки и строками данных.

  • Отсутствующие значения. Драйвер Excel считывает определенное количество строк (по умолчанию 8 строк) в указанном источнике, чтобы угадать тип данных каждого столбца. Если столбец, как представляется, содержит смешанные типы данных, особенно числовые данные, смешанные с текстовыми данными, драйвер решает в пользу большинства типов данных и возвращает значения NULL для ячеек, содержащих данные другого типа. (При ничьей числовой тип выигрывает.) Большинство параметров форматирования ячеек в Excel, кажется, не влияют на определение этого типа данных. Это поведение драйвера Excel можно изменить, указав режим импорта. Чтобы указать режим импорта, добавьте IMEX=1 к значению расширенных свойств в строку подключения диспетчера соединений Excel в окне Свойств. Дополнительные сведения см. в статье PRB: значения Excel, возвращаемые как NULL с помощью DAO OpenRecordset.

  • Усеченный текст. Когда драйвер определяет, что столбец Excel содержит текстовые данные, драйвер выбирает тип данных (string или memo) на основе самого длинного значения, которое он выбирает. Если драйвер не обнаруживает значения, превышающие 255 символов в строках, которые он примерирует, он обрабатывает столбец как строковый столбец длиной 255 символов вместо столбца memo. Поэтому значения, превышающие 255 символов, могут быть усечены. Чтобы импортировать данные из столбца memo без усечения, необходимо убедиться, что столбец memo по крайней мере в одной из примерных строк содержит значение, превышающее 255 символов, или необходимо увеличить количество строк, выборочных драйвером, чтобы включить такую строку. Вы можете увеличить количество строк в выборке, увеличив значение TypeGuessRows в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel. За дополнительной информацией см. раздел PRB: Ошибка при передаче данных из источника OLEDB Jet 4.0.

  • Типы данных. Драйвер Excel распознает только ограниченный набор типов данных. Например, все числовые столбцы интерпретируются как двойные (DT_R8), а все строковые столбцы (кроме столбцов memo) интерпретируются как 255-символьные строки Юникода (DT_WSTR). Службы Integration Services сопоставляют типы данных Excel следующим образом:

    • Числовой — двойной точности с плавающей запятой (DT_R8)

    • Валюта — валюта (DT_CY)

    • Boolean - Boolean (DT_BOOL)

    • Дата и время — datetime (DT_DATE)

    • Строка — строка Юникода, длина 255 (DT_WSTR)

    • Memo — текстовый поток Юникода (DT_NTEXT)

  • Преобразования типов данных и длины. Службы Integration Services не преобразовывают типы данных неявно. В результате может потребоваться использовать преобразования "Производный столбец" или "Преобразование данных" для явного преобразования данных Excel перед их загрузкой в назначение, отличное от Excel, или преобразовывать данные, отличные от Excel, прежде чем загружать их в назначение Excel. В этом случае может быть полезно создать начальный пакет с помощью мастера импорта и экспорта, который настраивает необходимые преобразования для вас. Ниже приведены некоторые примеры преобразований, которые могут потребоваться.

    • Преобразование между строковыми столбцами Юникода и столбцами строк, отличных от Юникода, с определенными кодовыми страницами

    • Преобразование между 255-символьными строковыми столбцами Excel и строковыми столбцами разной длины

    • Преобразование между числовыми столбцами Excel двойной точности и числовыми столбцами других типов

Конфигурация источника Excel

Свойства могут быть заданы с помощью конструктора SSIS или программным путем.

Для получения дополнительной информации о свойствах, которые можно задать в диалоговом окне Редактор источника Excel, выберите одну из следующих тем:

Диалоговое окно "Расширенный редактор" отражает все свойства, которые можно задать программным способом. Дополнительные сведения о свойствах, которые вы можете задать в диалоговом окне Расширенный редактор или программными средствами, см. в следующих разделах.

Сведения о цикле по группам файлов Excel см. в разделе "Цикл обработки файлов Excel и таблиц с помощью контейнера Foreach Loop".