Tal vez uno de los problemas FRECUENTES a la hora de programar mediante Csharp# es usando libros de Microsoft ( Excel, Word..etc) dejo una de las funciones en caso se quisiera realizar lo siguiente:
- Abrir un libro Excel cualquiera.
- Editar por código.
- Grabar edición.
- Cerrar conexión al libro seleccionado.
Excel.Application excel = new Excel.ApplicationClass();
Excel.Worksheet worksheet = null;
Excel.Workbook workbook = null;
workbook = excel.Workbooks.Open("aqui ingresa ruta de tu .xls", 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Excel.Sheets excelSheets = workbook.Worksheets;
string currentSheet = "CONSULTA";//<<-- Nombre de hoja Excel (no de archivo)
worksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
//edicion de la hoja excel con datos de GRILLA datagridview
int rowIndex = 1;// INICIO DE POSICION DE FILA EN DATOS (recorrido)
//---------------------ENCABEZADO----------------------------------------------------------
//contador para las COLUMNAS
int ColumnIndex = 2; //desde COLUMNA 2 ENCABEZADO
//este ciclo es para saber cuantas columnas y que nombre de encabezado tiene nuestro grid e irlas agregando a nuestro objeto excel
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
//aumentamos la variable de uno en uno por cada columna en el grid
ColumnIndex++;
//se agrega una nueva celda con el nombre de la columna para tener el encabezado de nuestra tabla de registro:
excel.Cells[rowIndex, ColumnIndex] = col.Name;
}
//--------------------------------------------------------------------------------------
//-------------------DATOS DE EXCEL-----------------------------------------------------
//recorremos el grid cumpliedo la condicion del foreach que por cada renglon que halla en el grid hara lo que esta dentro del ciclo
foreach (DataGridViewRow row in dataGridView1.Rows)
{
//aumentamos el numero del renglon
//el numero de columnas lo regresamos a cero
ColumnIndex = 2;
//en este ciclo recorremos cada columna del renglon en el que estamos trabajando, el recorrido es simple es recorrer una matriz
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
//aumentamos la columna
ColumnIndex++;
//agregando el valor contenido en determinada posicion del grid a nuestro objeto de excel.
excel.Cells[rowIndex+1, ColumnIndex] = row.Cells[col.Name].Value;
//excel.Cells[rowIndex + 1, ColumnIndex] = row.Cells["Numero Serie"].Value;
//recorre todas las columnas, renglon por renglon hasta terminar los renglones que tenga nuestro grid
}
rowIndex++;
}
//-----------------------------------------------------------------------------------
excel.ActiveWorkbook.Save();// grabamos los datos recorridos mediante el DGV
excel.ActiveWorkbook.Close("aqui ingresa ruta de tu .xls", "aqui ingresa ruta de tu .xls", null);
//muestra en pantalla archivo de excel en DGV1
// excel.Visible = true;// abre excel
Espero haya sido de su agrado. este tipo de Programa no etsa publicado en internet es por eso que lo comparto ya que me costó bastante encontrar la solucion al GUARDAR un archivo excel mediante PROGRAMACION.. No olviden compartirlo. GRACIAS...
Saludos..
No hay comentarios.:
Publicar un comentario