Primero, quiero decir que estoy afuera en aguas profundas, ya que solo estoy haciendo algunos cambios al código escrito por otra persona de la compañía, usando OleDbDataAdapter para "hablar" a Excel y no estoy familiarizado con eso. Hay un error allí que simplemente no puedo seguir.Problema con el uso de OleDbDataAdapter para recuperar datos de una hoja de Excel
Estoy tratando de usar un OleDbDataAdapter para leer en un archivo de Excel con alrededor de 450 líneas.
En el código se realiza Es así:
connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source='" + path + "';" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
connection.Open();
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand.CommandText, connection);
objAdapter.Fill(objDataSet, "Excel");
foreach (DataColumn dataColumn in objTable.Columns) {
if (dataColumn.Ordinal > objDataSet.Tables[0].Columns.Count - 1) {
objDataSet.Tables[0].Columns.Add();
}
objDataSet.Tables[0].Columns[dataColumn.Ordinal].ColumnName = dataColumn.ColumnName;
objImport.Columns.Add(dataColumn.ColumnName);
}
foreach (DataRow dataRow in objDataSet.Tables[0].Rows) {
...
}
Todo parece estar funcionando bien, excepto por una cosa. La segunda columna está llena principalmente de números de cuatro dígitos como 6739, 3920 y uno, pero las filas tienen valores alfanuméricos como 8201NO y 8205NO. Se informa que esas cinco celdas tienen contenidos en blanco en lugar de su contenido alfanumérico. He marcado en Excel y todas las celdas en estas columnas están marcadas como Texto.
Este es un archivo xls por cierto, y no xlsx.
¿Alguien tiene alguna pista de por qué estas celdas se muestran en blanco en el DataRow, pero las numéricas se muestran bien? Hay otras columnas con contenido alfanumérico que se muestran bien.
Gracias a todos por ayudarme con este problema. Me hiciste comprender por qué sucedió esto, para poder encontrar la solución adecuada. Sigo pensando que la forma en que funciona es bastante horrible, pero esa es otra historia :) –