У меня есть файл Excel, в котором есть строка двойных значений. Он корректно проверяет первые 8 строк, но если в строке 9 или выше есть неверные данные, он видит тип данных как dbnull вместо double.
Например, если мой столбец выглядит так (3 строки):
1234.22
1234.55
5555.xyz
Эта строка будет отображаться как двойная, а также в строке 3 есть буквенно-цифровые символы
Однако, если я сделаю это так (более 9 строк):
1234
12345
12346
4357676
3456787
3456567
234234
978978
76867.ddd
123942
Тогда вторая-последняя строка будет отображаться как dbNull со значением ячейки "". Но он будет видеть самую последнюю строку как двойную с правильным значением ячейки.
Это моя строка подключения, поэтому я использую Imex = 1
string connString = connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";Extended Properties='Excel 12.0;IMEX=1;'";
После дальнейшего расследования именно это вызывает проблему
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel] находится в реестре REG_DWORD "TypeGuessRows", который я нашел. По умолчанию он равен 8 в реестре.
По-видимому, это читает только первые 8 строк. Мне нужно иметь возможность сканировать все строки.
Нет способа установить это в коде? Я не могу изменить реестр на работе