Una posible aproximación a solucionar este problema es la que trato de mostrar acá, que básicamente seria importar una hoja de MS Excel a un GridView de Asp.Net, una vez cargada en nuestra grilla, poder darles la posibilidad a nuestros usuarios de corregir algún dato. Finalmente quedaría recorrer la grilla y guardar estos datos en nuestra DB o procesarlos de alguna otra manera (si alguien tiene problema con esta ultima cuestión por favor no dude en escribir). También es válido aclarar que en el ejemplo asumo de antemano que conocemos la estructura del Excel que pretende bindearse al nuestro GridView.
Yendo directamente el punto, la idea en es poder utilizar al motor de consultas JET 4.0, de la misma manera en la que lo utilizaríamos para consultar cualquier otra fuente de datos (una base de datos de MS Acces por ejemplo).
protected void btnImportarNomina_Click(object sender, EventArgs e){if (nominaExcel.PostedFile != null){List<Lista> listaCollection = new List<Lista>();StringBuilder sbConnection = new StringBuilder();sbConnection.Append("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");if (nominaExcel.PostedFile.FileName.Contains(".xls")){sbConnection.Append(nominaExcel.PostedFile.FileName);sbConnection.Append(";Extended Properties=Excel 8.0;Persist Security Info=False");System.Data.OleDb.OleDbConnection SQLCon = new System.Data.OleDb.OleDbConnection(sbConnection.ToString());System.Data.OleDb.OleDbCommand SQLCom = new System.Data.OleDb.OleDbCommand("select * from [Hoja1$]", SQLCon);System.Data.OleDb.OleDbDataAdapter SQLDa = new System.Data.OleDb.OleDbDataAdapter(SQLCom);SQLCon.Open();IDataReader Odbreader = SQLCom.ExecuteReader();listaCollection.Clear();while (Odbreader.Read()){Lista lista = new Lista();if (!String.IsNullOrEmpty(Odbreader[0].ToString())){lista.NumeroDocumento = Convert.ToInt32(Odbreader[0]);lista.Nombre = Odbreader[1].ToString();lista.FechaNac = Convert.ToDateTime(Odbreader[2]);listaCollection.Add(lista);}}SQLCon.Close();GridView1.DataSource = listaCollection;GridView1.DataBind();}}}
Ariel Serlin
Para bajar el codigo hace click aqui