SSIS 2008 Excel Source - Проблемы с загрузкой буквенно-цифровых столбцов - PullRequest
2 голосов
/ 28 февраля 2011

Я использую SSIS 2008 для загрузки alphanumeric столбцов из Excel.

У меня есть один столбец, который начинается как целое число

1
2
...
999

Затем изменяется на AlphaNumeric

A1
A2
A999

Когда я пытаюсь загрузить, используя Excel Data Source, Excel всегда скажет, что это integer, поскольку он должен только сэмплировать верхнюю часть файла.
(Кстати - Iзнаю, что я могу переупорядочить файл так, чтобы альфы были наверху, но я бы предпочел не делать этого ...)

К сожалению, вы не можете изменить его решение.Это означает, что при загрузке данных он отфильтровывает 'A', а запись A999 обновляет запись 999.Это явно не хорошо ... Я попытался изменить внешний и выходной столбцы на строку в advanced editing options, но я получаю ошибки, и они не будут работать, пока вы не установите столбцы обратно в целое число.

У кого-нибудь есть решение?

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

SSIS использует Jet для доступа к файлам Excel.По умолчанию Jet сканирует first 8 rows ваших данных, чтобы определить тип каждого столбца.

Чтобы исправить это, вам нужно отредактировать registry, чтобы увеличить значение TypeGuessRows DWORD одного из следующих ключей реестра, чтобы определить, сколько строк будет сканироваться в ваших данных:

Это зависит от того, какая версия Windows и какая версия Excel ... следующим образом:

For 32-bit Windows

Excel 97
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel

Excel 2000 and later versions
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

For 64-bit Windows

Excel 97
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\3.5\Engines\Excel

Excel 2000 and later versions
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel

Затем укажите IMEX=1 в строке подключения следующим образом:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\abc.xls;
Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1";

Thisболее подробную информацию можно найти по адресу: http://support.microsoft.com/kb/189897/

0 голосов
/ 28 февраля 2011

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

Сценарии автоматического преобразования в файл .csv были бы хорошим обходным путемЕсть несколько предложений в этой теме:

преобразование файла Excel (xls) в файл с разделителями-запятыми (csv) без графического интерфейса пользователя

, включая некоторый кодв C # вы можете легко набрать:

http://jarloo.com/code/api-code/excel-to-csv/

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

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...