mirada a este post: Excel "External table is not in the expected format."lectura xlsx guardado como XLS con LinqToExcel
Tengo el mismo problema representado en ese puesto, pero estoy usando LinqtoExcel a leer el archivo en vez de consultas simples.
¿Cuál sería el equivalente de LinqToExcel para establecer la cadena de conexión como lo sugiere la respuesta a esa publicación?
Aquí está el código que estoy utilizando:
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)
{ ...
y mi problema es: "La tabla externa no está en el formato esperado" en el inicio foreach.
EDITAR (mi problema está resuelto pero la pregunta sigue sin respuesta): Estoy usando EPPlus en lugar de LinqToExcel para esta tarea y todo está funcionando bien ahora.
LinqToExcel también funciona para archivos de Excel 2007. Solo necesita usar el motor de la base de datos Ace, que se explica en la respuesta a continuación. – Paul