Principales respuestas
exportar excel a gridview c#

Pregunta
-
buenos dias
tengo un detalle tengo unos datos en un excel que los quiero mostrar en una grilla pero quiero que se empiece a mostrar a partir de la tercera fila, me pueden apoyar con esto, estoy usando actualmente esto pero no se como contrar las filas
private void BuscarArchivo(string Archivo)
{
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.DataSet DtSet;
System.Data.OleDb.OleDbDataAdapter MyCommand;
MyConnection = new System.Data.OleDb.OleDbConnection(@"provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + Archivo + "';Extended Properties=Excel 12.0;");
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [HOJA2$]", MyConnection);
MyCommand.TableMappings.Add("Table", "Net-informations.com");
DtSet = new System.Data.DataSet();
MyCommand.Fill(DtSet);
dgvusuarios.DataSource = DtSet.Tables[0];
}jueves, 11 de febrero de 2016 17:06
Respuestas
-
- Propuesto como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:50
- Marcado como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:50
jueves, 11 de febrero de 2016 17:56
Todas las respuestas
-
Hola:
Podrías valerte de SpreadSheetLight el cual hace el trabajo de interactuar con Excel una tarea muy sencilla.
private void Import() { //usamos el objeto FileSteam para recuperar el archivo FileStream fs = new FileStream("TestExcel.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // //Creamos el obejto SLDocument para cargar el archivo Excel SLDocument sl = new SLDocument(fs); //refinimos el indice de la fila de donde comenzaremos a leer int rowIndex = 2; //recorremos el objeto SLDocument mediante un ciclo While //este ciclo recorre el documento miestras no se encuentre una celda vacia while (!string.IsNullOrEmpty(sl.GetCellValueAsString(rowIndex, 1))) { //tomamos los valores de las celdas y lo pasamos a las respectivas columnas del control DataGridView dgvDatos.Rows.Add(sl.GetCellValueAsString(rowIndex, 1), sl.GetCellValueAsString(rowIndex, 2), sl.GetCellValueAsString(rowIndex, 3), sl.GetCellValueAsString(rowIndex, 4)); //incrementeamos una unidad al indice de la fila para continuar con el recorrido rowIndex += 1; } }
Aquí el ejemplo completo:
Trabajar con archivos Excel desde WindowsForms (SpreadSheetLight)
Saludos desde Monterrey, Nuevo León, México!!!
- Propuesto como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:51
jueves, 11 de febrero de 2016 17:14 -
si gracias ya había hecho un excel con spreadsheetlight y funciona muy bien
pero ahora me marca el error en FileStream y no se como habilitarlo,
FileStream = new FileStream("TestExcel.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
jueves, 11 de febrero de 2016 17:41 -
Hola:
pero ahora me marca el error en FileStream y no se como habilitarlo,
Pero que error te marca?, en la linea que pusiste se considera que el archivo "TextExcel.xlsx" existe en el mismo directorio desde donde se ejecuta la aplicación.
Saludos desde Monterrey, Nuevo León, México!!!
jueves, 11 de febrero de 2016 17:43 -
dice FileStream no existe en el contexto actualjueves, 11 de febrero de 2016 17:45
-
- Propuesto como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:50
- Marcado como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:50
jueves, 11 de febrero de 2016 17:56 -
tienes razon lo estaba pasando por alto, la verdad nunca habia llenado una grilla esta funcion, por eso estoy batallando, ahora en esta linea me arroja el error de: Al control DataGridView no se puede agregar ninguna fila que no tenga columnas. Las columnas se deben agregar primero.
dgvusuarios.Rows.Add(sl.GetCellValueAsString(rowIndex, 1), sl.GetCellValueAsString(rowIndex, 2),
sl.GetCellValueAsString(rowIndex, 3), sl.GetCellValueAsString(rowIndex, 4));jueves, 11 de febrero de 2016 18:19 -
Hola:
Pues el mensaje lo dice todo.
Tienes que crear las columnas del dgvUsuarios antes de querer meterles información, en tiempo de diseño agrega las columnas al control y listo, después podrás cargar el Excel sin problemas.
Saludos desde Monterrey, Nuevo León, México!!!
- Propuesto como respuesta Karen MalagónModerator martes, 23 de febrero de 2016 21:50
jueves, 11 de febrero de 2016 18:23