Справка по строке подключения OleDB для файлов excel

Проблема, с которой я сталкиваюсь, заключается в том, что адаптер данных просматривает только первую строку в каждом столбце для определения типа данных. В моем случае первая колонка "SKU" - это номера для первых 500 строк, тогда у меня есть SKU, которые являются смешанными числами и буквами. Итак, что заканчивается, строки в столбце SKU остаются пустыми, но я все еще получаю другую информацию для каждой строки столбца.

Я считаю, что это строка подключения, которая управляет этим, и с моими текущими настройками он должен работать, но это не так.

Строка подключения:

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";


ImportMixedTypes=Text;TypeGuessRows=0

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

"Bandaid", на который я положил это, - сделать первую строку в электронной таблице смешением букв и цифр и, в частности, оставить эту строку в моем запросе.

Ответ 1

К сожалению, вы не можете установить ImportMixedTypes или TypeGuessRows из строки подключения, поскольку эти параметры определены в реестре. Для драйвера ACE OleDb они хранятся в

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel

в реестре. Таким образом, вы можете упростить строку подключения:

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;""";

После установки в реестре от TypeGuessRows до 0 и ImportMixedTypes до Text вы должны получить поведение, которое вы ожидаете. Тем не менее, вы можете использовать подходящее количество, например 1000 вместо нуля, если вы обнаружите, что производительность импорта будет меньше идеальной.