Excel “Внешняя таблица не находится в ожидаемом формате”.

Используйте CollectionUtils.filter (набор, предикат) , от Apache палата общин.

160
задан pnuts 25 February 2015 в 04:16
поделиться

3 ответа

"Внешняя таблица не в ожидаемом формате." обычно возникает при попытке использовать файл Excel 2007 со строкой подключения, в которой используются: Microsoft.Jet.OLEDB.4.0 и Extended Properties = Excel 8.0

Использование следующей строки подключения, по-видимому, устраняет большинство проблем.

public static string path = @"C:\src\RedirectApplication\RedirectApplication\301s.xlsx";
public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
239
ответ дан 23 November 2019 в 21:31
поделиться

Вместо OleDb вы можете использовать Excel Interop и открыть рабочий лист только для чтения.

https://msdn.microsoft.com/en-us/library/microsoft. office.interop.excel.workbooks.open (v = office.15) .aspx

1
ответ дан 23 November 2019 в 21:31
поделиться

Спасибо за этот код :) Я очень ценю это. Работает для меня.

public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";

Итак, если у вас есть различная версия файла Excel, получите имя файла, если его расширение .xlsx , используйте это:

Private Const connstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";

, а если это .xls , используйте:

Private Const connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + path + ";Extended Properties=""Excel 8.0;HDR=YES;"""
24
ответ дан 23 November 2019 в 21:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: