Principales respuestas
Problema al cargar Excel al GridView en formato de texto

Pregunta
-
Hola, tengo un excel que lo cargo a un GridView, pero al momento de mostrarlo el campo no sale en el formato adecuado, a pesar de en la columna es de tipo texto. Los que tienen el triangulo verde se muestran de forma correcta pero los que no me los considera como número y no los muestra correctamente.
Y en el grid view se muestran así:
¿Cual sería la solución para que me muestre en el formato correcto?
Aqui les paso el código :
private void Import_To_Grid(string FilePath, string Extension, string isHDR) { string conStr = ""; //switch (Extension) //{ //case ".xls": conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=yes;imex=1;ImportMixedTypes=Text'"; //ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString; // break; //case ".xlsx": // conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"; // //ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString; // break; //default: // { // conStr = "Provider=Microsoft.ACE.Oledb.12.0; data source= {0};Extended properties=Excel 12.0 Xml;HDR={1};ImportMixedTypes=Text"; // break; // } //} //conStr = "Provider=Microsoft.Jet.Oledb.4.0; data source= " + FileUpload1.FileName + ";Extended properties='Excel 8.0;hdr=yes;imex=1;ImportMixedTypes=Text'"; conStr = String.Format(conStr, FilePath, isHDR); OleDbConnection connExcel = new OleDbConnection(conStr); OleDbCommand cmdExcel = new OleDbCommand(); OleDbDataAdapter oda = new OleDbDataAdapter(); DataTable dt = new DataTable(); cmdExcel.Connection = connExcel; //Get the name of First Sheet connExcel.Open(); DataTable dtExcelSchema; dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); connExcel.Close(); //Read Data from First Sheet connExcel.Open(); cmdExcel.CommandText = "SELECT * From [" + SheetName + "]"; oda.SelectCommand = cmdExcel; oda.Fill(dt); connExcel.Close(); //Bind Data to GridView grdListExcel.Caption = Path.GetFileName(FilePath); grdListExcel.DataSource = dt; grdListExcel.DataBind(); DataSourceExcel = dt; //Limpiar Grilla inconsistencias grdListInconsistencias.DataSource = null; grdListInconsistencias.DataBind(); hdnIndexTab.Value = "0"; }
Saludos
Juan Collazos
Respuestas
-
Hola , por lo que tengo entendido esos componentes de conectividad para excel tratan de inferir el tipo de todas las celdas de acuerdo a los valores de las primeras 8 filas del excel, se que esto se puede cambiar en el regedit en el typeguessrows
Por otro lado el triángulo verde indica que hay algún error con las fórmulas de la celda, deberías fijarte en arreglar ello, deberías convertirlo a número y cuando ya no te salga ese triangulo pasarlo al formato que consideres conveniente.
Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Solo dejo mis respuestas en el foro si son votadas o respuesta, de lo contrario por mantener el orden las borro.Saludos. Lima-Perú.
- Editado Augusto1982 viernes, 9 de junio de 2017 15:12 Ampliar respuesta
- Propuesto como respuesta Joyce_ACModerator viernes, 9 de junio de 2017 17:22
- Marcado como respuesta Joyce_ACModerator lunes, 12 de junio de 2017 16:02