Excel "Внешняя таблица не в ожидаемом формате." - PullRequest
158 голосов
/ 16 июля 2009

Я пытаюсь прочитать файл Excel (xlsx), используя код, показанный ниже. Я получаю «Внешняя таблица не в ожидаемом формате». ошибка, если у меня нет файла уже открыт в Excel. Другими словами, мне нужно сначала открыть файл в Excel, прежде чем я смогу прочитать его из моей программы на C #. Файл xlsx находится в общем доступе в нашей сети. Как я могу прочитать файл, не открывая его сначала? Спасибо

string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";

using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
    DataSet ds = new DataSet();
    adaptor.Fill(ds);
}

Ответы [ 22 ]

0 голосов
/ 21 мая 2019

Моя область состоит из загрузки шаблона и проверяет шаблон, когда он заполнен данными Таким образом,

1) Загрузите файл шаблона (.xlsx) со строкой заголовка. файл генерируется с помощью openxml и работает отлично.

2) Загрузить тот же файл без каких-либо изменений из его загруженного состояния. Это приведет к ошибке соединения и не удастся (соединение OLEDB используется для чтения таблицы Excel).

Здесь, если данные заполнены, программа работает как положено.

Любой, кто думает, что проблема связана с файлом, который мы создаем, имеет формат xml , если мы откроем его и просто сохраним, преобразуем в формат Excel, и он будет работать хорошо.

Любая идея скачать Excel с предпочтительным типом файла?

0 голосов
/ 16 февраля 2016

Если у вас все еще есть эта проблема, то проверьте ваши разрешения, я попробовал многие из этих предложений, и моя конкретная проблема заключалась в том, что файл, который я хотел обработать, находился под контролем исходного кода, а поток не имел разрешений, мне пришлось изменить все права доступа к папке, и он начал работать (я там обрабатывал много файлов) ... Он также соответствует многим предложениям, таким как изменение имени файла или проверка того, что файл не заблокирован другим процессом.

Надеюсь, это поможет вам.

...