Чтение xlsx сохранено как xls с LinqToExcel
Посмотрите на этот пост: Excel "Внешняя таблица не в ожидаемом формате."
У меня та же проблема, описанная в этом посте, но я использую LinqtoExcel для чтения файла вместо простых запросов.
Каким будет эквивалент LinqToExcel для установки строки подключения, как следует из ответа на этот пост?
Вот код, который я использую:
var excelOM = new ExcelQueryFactory(pPathArchivoOM);
var despachosClient = from c in excelOM.Worksheet<RegistroDespachoOM>("Tabla_1")
where c.DESTINAT.Contains("SOMETEXT")
select c;
//Identificar los despachos asociados a números de documento sin datos aún.
foreach (RegistroDespachoOM despacho in despachosClient)
{ ...
И моя проблема: "Внешняя таблица не в ожидаемом формате" в начале каждого foreach.
РЕДАКТИРОВАТЬ (моя проблема решена, но вопрос остается без ответа): я использую EPPlus вместо LinqToExcel для этой задачи, и теперь все работает нормально.
1 ответ
Решение
Вам нужно будет использовать ядро базы данных ACE вместо ядра базы данных JET.
Вы можете сделать это с LinqToExcel, установив DatabaseEngine
имущество. Вот пример
var excelOM = new ExcelQueryFactory(pPathArchivoOM);
excelOM.DatabaseEngine = DatabaseEngine.Ace;