Чтение 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;
Другие вопросы по тегам