none
Problemas con decimales y enteros columna excel RRS feed

  • Pregunta

  • Buenso días 

    TENGO ESTE EXCEL:

    Lo que hago es iniciar una conexión oldb y leer las rows del excel y ponerlas en un dataset para que después sean leídas en un gridview:

    try
            {
                string path2 = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    
                path2 = path2 + "\\PreInventarioInicial.xls";
    
                string path = path2;
    
                string xlConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
    
                if (Path.GetExtension(path) == ".xls")
                {
                    oledbConn = new OleDbConnection(xlConnString);
                }
                else if (Path.GetExtension(path) == ".xlsx")
                {
                    oledbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0");
                }
                oledbConn.Open();
                OleDbCommand cmd = new OleDbCommand(); ;
                OleDbDataAdapter oleda = new OleDbDataAdapter();
                DataSet ds = new DataSet();
    
                cmd.Connection = oledbConn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "SELECT distinct([ITEM]) FROM [PreInventarioInicial$]";
                oleda = new OleDbDataAdapter(cmd);
                oleda.Fill(ds, "dsSlno");
    
                cmd.CommandText = "SELECT [ITEM],[FAMILIA],[Id],[ARTICULO],[UNIDAD DE MEDIDA],[IdUnidad],[Cantidad],[PRECIO UNIT] FROM [PreInventarioInicial$]";
              
                oleda = new OleDbDataAdapter(cmd);
                oleda.Fill(ds);
    
                foreach(DataTable table in ds.Tables)
                {
                    foreach(DataRow dr in table.Rows)
                    {
                        string cantidad = ds.Tables[1].Rows[0]["Cantidad"].ToString();
                        string precio = ds.Tables[1].Rows[0]["PRECIO UNIT"].ToString();
                    }
                }
    
                gvLeer.DataSource = ds.Tables[1].DefaultView;
                gvLeer.DataBind();
            }
    
            catch (Exception ex)
            {
                lblMensaje.InnerText = ex.ToString();
            }
            finally
            {
                oledbConn.Close();
            }

    El problema es que el gridview muestra así:

    Se está "comiendo" algunos datos del excel (Cantidad y Precio) , alguien sabe qué podría estar pasando? Gracias de antemano


    viernes, 10 de enero de 2014 16:48