Я пытаюсь прочитать файл .xls, который имеет очень большую текстовую ячейку (около 8900 символов) с использованием System.Data.OleDb
и Microsoft Поставщик ACE OLEDB. Я не контролирую содержимое файла .xls.ACE OLEDB «Внешняя таблица не в ожидаемом формате» с большим текстом в ячейке Excel
Я получаю следующее исключение при попытке .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;"
- строка подключения Расширенные свойства = "Excel 12.0;"
Из моего исследования кажется, что старый поставщик JET использовал для усечения полей до 255 символов. Я не могу заставить ACE читать файл вообще, не выбрасывая исключение.
Исключение указывает на то, что вы пытаетесь сделать это из приложения .NET. Если это так, то вам может помочь, если вы помечаете вопрос 'C#', 'VB.NET' или что-то еще. Тем не менее, я не могу воспроизвести вашу проблему с C#. Можете ли вы предоставить ссылку на небольшой пример файла .xls, который продемонстрирует ошибку? –
есть, C#. загрузили образец в https://dropfile.to/EZmAt3K. – CoderBrien
В Excel вы можете попробовать вкладку «Данные»> «Из доступа»> выбрать файл excel> и т. Д., А затем проверить сгенерированную строку соединения в свойствах. В противном случае вы можете попробовать некоторые из драйверов ODBC https://www.connectionstrings.com/excel-2007-odbc/ – Slai