Exportar un datagrid a excel

Gracias de antemano por ayudar a los demás, ojala y puedas hacerlo conmigo, mira deseo exportar el contenido de un datagrid a excel en el datagrid estoy presentando alrededor de 40 columnas que se muestran porque están enlazada a un dataenvironment.
Espero no sea muy complicado.
Disculpa y gracias

1 Respuesta

Respuesta
1
Prueba usar esta clase para exportar datos a Excel.
Debes añadir la referencia de visual basic de la librería de objetos de Ms Excel 10.0
La clase es esta y yo la llamo ClsExcel.
Option Explicit
Dim app As Excel.Application
Dim Libros As Excel.Workbooks
Dim Libro As Excel.Workbook
Dim hoja As Excel.Worksheet
Dim blncargado As Boolean
Public Sub CrearExcel(archivo As String)
Set app = New Excel.Application
Set Libros = app.Workbooks
Set Libro = Libros.Add()
Libro.SaveAs archivo
blncargado = True
End Sub
Public Sub AbrirExcel(archivo As String)
Set app = New Excel.Application
Set Libros = app.Workbooks
Set Libro = Libros.Open(archivo)
End Sub
Public Sub DevolverHojas(ByRef PsHojas() As String)
Dim i As Long
ReDim Preserve PsHojas(0 To 0)
For i = 0 To Libro.Worksheets.Count - 1
PsHojas(UBound(PsHojas)) = Libro.Worksheets(i + 1).Name
ReDim Preserve PsHojas(0 To UBound(PsHojas) + 1)
Next
ReDim Preserve PsHojas(0 To UBound(PsHojas) - 1)
End Sub
Public Sub AbrirHoja(PeHoja As String)
On Error GoTo HojaNoExiste
Set hoja = Libro.Worksheets(PeHoja)
Exit Sub
HojaNoExiste:
MsgBox "Error, el libro excel debe tener una hoja llamada '" & PeHoja & "'"
Me.CerrarExcel
End Sub
Public Function DevolverCelda(X As Long, Y As Long) As String
DevolverCelda = hoja.Cells(X, Y)
End Function
Public Sub PonerValorCelda(X As Long, Y As Long, ByVal Valor As String)
hoja.Cells(X, Y) = Replace(Valor, "=", "(=)")
End Sub
Public Sub PonerValorTituloCelda(X As Long, Y As Long, Valor As String)
hoja.Cells(X, Y).Font.Bold = True
hoja.Cells.BorderAround
hoja.Cells(X, Y) = Valor
End Sub
Private Sub Class_Initialize()
blncargado = False
End Sub
Private Sub Class_Terminate()
If blncargado Then
Libro.Sabe
Libro.Close
Libros.Close
End If
End Sub
Public Sub GuardarComo(archivo As String)
Libro.SaveAs archivo
End Sub
Public Sub CerrarExcel(Optional ByVal guardar As Boolean = True)
If blncargado Then
If guardar Then
Libro.Save
End If
Libro.Close
Libros.Close
End If
blncargado = False
End Sub
Para usar la clase usa un código como este :
dim objExcel as ClsExcel
Set objExcel = new ClsExcel
objExcel.CrearExcel app.Path & "\" & Subfolder.Name & ".xls"
'objExcel.AbrirExcel (app.Path & "\" & Subfolder & ".xls")
ObjExcel. AbrirHoja "HOJA1"
ObjExcel. PonerValorCelda 1, 1, "Palabra"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas