Problema
1: Se detectó System.Data.OleDb.OleDbException
2: HResult=-2147467259
3: Message=La tabla externa no tiene el formato esperado.
4: Source=Microsoft JET Database Engine
5: ErrorCode=-2147467259
6: StackTrace:
Diagnóstico
En mi caso este error lo recibí por no utilizar el provider correcto en driver. Estoy utilizando un archivo de Excel versión 2010 con extensión “xlsx” y el driver está referido a versión antigua “xls”
1: <add name="ExcelConnectionString"
2: connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\archivo.xls;Persist Security Info=False;Extended Properties="Excel 8.0;HDR=YES""
3: providerName="System.Data.OleDb" />
Solución
Cambiar el provider y en la cadena de conexión a Excel.
1: <add name="ExcelConnectionString"
2: connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\archivo.xlsx;Persist Security Info=False;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1""
3: providerName="System.Data.OleDb"/>
Nota: debe tener instalados los drivers correctos en su máquina, claro.