Presta atención porque en esta sección encontrarás la respuesta que buscas.Esta crónica ha sido aprobado por nuestros expertos para asegurar la calidad y exactitud de nuestro contenido.
Solución:
esto funcionó para mí
using (OleDbConnection conn = new OleDbConnection())
DataTable dt = new DataTable();
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path
+ ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;MAXSCANROWS=0'";
using (OleDbCommand comm = new OleDbCommand())
comm.CommandText = "Select * from [" + sheetName + "$]";
comm.Connection = conn;
using (OleDbDataAdapter da = new OleDbDataAdapter())
da.SelectCommand = comm;
da.Fill(dt);
return dt;
MAXSCANROWS=0 anula el valor predeterminado del registro y analiza todas las filas antes de determinar los tipos. IMEX=1 aún debe incluirse.
Por ejemplo, dada esta tabla:
Header | Header
------ | ------
Cell1 | 2456354
Cell2 | 2456354
Cell3 | 2456354
Cell4 | 2456354
Cell5 | 2456354
Cell6 | 2456354
Cell7 | 2456354
Cell8 | 2456354
Cell9 | A5341
Las siguientes cadenas de conexión perderán A5341
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path
+ ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;'"
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path
+ ";Extended Properties='Excel 12.0 Xml;HDR=YES;MAXSCANROWS=0'"
Pero funciona cuando tiene ambos.
Necesitas establecer un valor para TypeGuessRows
Registro key a 0, de esta manera el controlador establecerá el tipo de datos en función de todos los valores de columna en lugar de los primeros 8 (predeterminado).
La ubicación de la key difiere de una versión a otra del controlador, puede buscarlo fácilmente en Google según su versión específica. Por ejemplo, para Access Connectivity Engine 2007 sería
HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice12.0Access Connectivity EngineEnginesExcel
Por cierto, no necesita Jet para leer archivos XLS, ACE también es perfectamente capaz de hacerlo.
Valoraciones y reseñas
Eres capaz de añadir valor a nuestra información contribuyendo tu veteranía en las explicaciones.