Используйте CollectionUtils.filter (набор, предикат) , от Apache палата общин.
"Внешняя таблица не в ожидаемом формате." обычно возникает при попытке использовать файл 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;";
Вместо OleDb вы можете использовать Excel Interop и открыть рабочий лист только для чтения.
Спасибо за этот код :) Я очень ценю это. Работает для меня.
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;"""