Pregunta: | 60554 - EXPORTAR EXCEL |
Autor: | Sayda Capacho |
Hola a todos, necesito de una gran ayuda,
Debo hacer una exportación a Excel y no se como hacerlo alguien me puede colaborar con esto |
Respuesta: | David Enriquez |
Muy facil...
primero que nada agrega la referencia Microsoft Excel XX.X Object Library...en mi caso es: Microsoft Excel 12.0 Object Library Parte de esto lo vi en un foro... pero lo acople a mis necesidades... Dim exApp As New Microsoft.Office.Interop.Excel.Application Dim exLibro As Microsoft.Office.Interop.Excel.Workbook Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet Dim Filas As Integer Dim respuesta As Integer Dim EXE As String = "SAS View" Try Filas = GridX.Rows.Count If Filas <= 0 Then MsgBox("No hay información para exportar a Excel", vbInformation, EXE) 'ExportaExcel = "" Exit Sub End If If Filas >= 1000 Then respuesta = MsgBox("Esta exportación tardará varios minutos..... ¿Desea continuar?", vbYesNo, EXE) If respuesta = 6 Then 'Continuar Else 'ExportaExcel = "" Exit Sub End If End If ' -- Crear nueva instancia de Excel exApp = CreateObject("Excel.Application") ' -- Agregar nuevo libro exApp.Workbooks.Add() 'exApp.ActiveWorkbook.SaveAs(Path.GetFullPath("Libro1"), xlNormal, "", "", False, False) 'exLibro = exApp.Workbooks.Open(FileXLS) ' -- Referencia a la Hoja activa ( la que añade por defecto Excel ) exHoja = exApp.ActiveSheet 'exLibro = exApp.Workbooks.Add 'exHoja = exLibro.Worksheets.Add() 'Asignación de valores de total de filas y columnas Dim NCol As Integer = GridX.ColumnCount Dim NRow As Integer = GridX.RowCount 'Aqui recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo. 'Barra1.Maximum = NRow 'Ciclo para recorrer solo la cabecera, para obtener nombres de columnas For i As Integer = 1 To NCol exHoja.Cells.Item(1, i) = GridX.Columns(i - 1).Name.ToString 'exHoja.Cells.Item(1, i).HorizontalAlignment = 3 Next 'Ciclo para recorrer los datos del grid For Fila As Integer = 0 To NRow - 1 For Col As Integer = 0 To NCol - 1 exHoja.Cells.Item(Fila + 2, Col + 1) = GridX.Rows(Fila).Cells(Col).Value Next 'Barra1.Value = Fila Next 'Barra1.Value = 0 'Titulo en negrita, Alineado al centro y que el tamaño de la columna se ajuste al texto exHoja.Rows.Item(1).Font.Bold = 1 'exHoja.Rows.Item(1).font.name = "arial" 'exHoja.Rows.Item(1).font.size = 13 ' exHoja.Rows.Item(1).HorizontalAlignment = 3 exHoja.Columns.AutoFit() 'Aplicación visible exApp.Application.Visible = True exHoja = Nothing exLibro = Nothing exApp = Nothing Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel") exHoja = Nothing exLibro = Nothing exApp = Nothing 'Return False End Try Lo anterior sirve para exportar lo que hay en un grid a Excel...si los datos los tienes fijos en objetos solo revisa la parte del ciclo FOR para que hagas los ajustes necesarios... buena suerte |