Я пытаюсь прочитать файл .xls с очень большой текстовой ячейкой (около 8900 символов) с использованием System.Data.OleDb
и поставщика Microsoft ACE OLEDB. У меня нет контроля над содержимым файла .xls.
Я получаю следующее исключение при попытке .Open()
OleDbConnection
:
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll
Additional information: External table is not in the expected format.
Я свернул файл .xls, и кажется, что именно текстовая ячейка вызывает исключение. У меня установлен MS Office 2010 x86 на ОС x64.
Я пробовал все следующее, но ни одно из них не решило проблему:
- ACE 12.0 x86
- ACE 12.0 x64
- ACE 15.0 x32
- настройка реестра для установки TypeGuessRows = 0
- строка подключения IMEX = 1
- строка подключения Расширенные свойства = "Excel 8.0;"
- строка подключения Extended Properties = "Excel 12.0;"
Из моих исследований кажется, что старый провайдер JET усекал поля до 255 символов. Я не могу заставить ACE прочитать файл без исключения исключения.
C#
,VB.NET
или чего-то еще. Тем не менее, я не могу воспроизвести вашу проблему с C #. Не могли бы вы предоставить ссылку на небольшой образец файла .xls, который продемонстрирует ошибку? - person Gord Thompson   schedule 24.11.2016