Я пытаюсь использовать C # для чтения файла Excel, который имеет смешанный тип данных. Ниже моя строка подключения
var path = //xls location
var MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel 8.0;IMEX=1;'");
Исследования научили меня, что полный Extended Properties
в строке соединения должен быть
Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text
Однако мне сообщили, что в строке подключения TypeGuessRows=0
не имеет значения , так как значение будет , полученное непосредственно из реестра . Поэтому мне нужно изменить ключ вручную и удалить это свойство из строки подключения.
Конкретный ключ реестра, который был задействован:
Путь:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Excel
Key:
TypeGuessRows
Исходное значение = 8 , чтобы заставить его работать, измените на = 0
Без этого IMEX
не будет работать, даже если я добавлю TypeGuessRows=0
в Extended Properties
.
Однако моя компания запрещает изменять значение реестра (строго). Мне сказали найти альтернативы для этого.
Короче говоря:
Есть ли способ читать смешанный тип данных excel файл без , требующий изменения любого ключа реестра (что является довольно распространенной практикой)?
Дополнительная тема:
Вы уже испытывали это раньше? Существуют ли возможности, которые мы можем установить TypeGuessRows=0
только из строки подключения, не изменяя ключ реестра (отменив мою вышеуказанную предпосылку).
Если что-то не получается с OleDb
:
Есть ли альтернативы OleDb
?
Я ценю любые советы или предложения.
Привет