''' <summary> ''' Funcion que exporta los datos de un DataGridView a un documento Excel ''' </summary> ''' <param name="Titulo">Titulo del Excel</param> ''' <param name="DataGrid">Grid con los datos a Mostrar</param> ''' <returns></returns> ''' <remarks></remarks> Shared Function ExportarGridADocumentoExcel(ByVal Titulo As String, _ ByVal DataGrid As DataGridView) As Boolean 'Creamos las variables 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 Try 'Añadimos el Libro al programa, y la hoja al libro exLibro = exApp.Workbooks.Add exHoja = exLibro.Worksheets.Add() ' ¿Cuantas columnas y cuantas filas? Dim NCol As Integer = DataGrid.ColumnCount Dim NRow As Integer = DataGrid.RowCount 'Aqui recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo. For i As Integer = 1 To NCol exHoja.Cells.Item(3, i) = DataGrid.Columns(i - 1).Name.ToString Next For Fila As Integer = 0 To NRow - 1 For Col As Integer = 0 To NCol - 1 exHoja.Cells.Item(Fila + 4, Col + 1) = DataGrid.Rows(Fila).Cells(Col).Value Next Next 'Titulo en negrita, Alineado al centro y que el tamaño de la columna se ajuste al texto exHoja.Rows.Item(3).Font.Bold = 1 exHoja.Rows.Item(3).HorizontalAlignment = 3 exHoja.Columns.AutoFit() 'Aplicación visible exApp.Application.Visible = True exHoja = Nothing exLibro = Nothing exApp = Nothing ExportarGridADocumentoExcel = True Catch ex As Exception MessageBox.Show(" ERROR : " & ex.Message & " --UtilForm.ExportarGridADocumentoExcel", "Administrador", MessageBoxButtons.OK, MessageBoxIcon.Error) ExportarGridADocumentoExcel = False End Try End Function |
Espero que os sirva de ayuda
3 comentarios:
no sirve!
Pues a mi me funciona perfecto
muchas gracias me ayudo muchísimo tu procedimiento para realizar un trabajo de pilas para un examen te lo adjunto por si alguien desea utilizarlo :-)
Public Class Form1
Dim i, j, k, l As Integer
Dim arreg(5, i) As String
Dim busq() As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
base.ColumnCount = 5
End Sub
Private Sub add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles add.Click
'j = j + 1
'For j = 0 To 5
If control.Text <> "" Then
i = i + 1
ReDim Preserve arreg(5, i)
arreg(1, i) = control.Text
arreg(2, i) = nombre.Text
base.Rows.Add(control.Text, nombre.Text, apellido.Text, localidad.Text, carrera.Text)
control.Text = ""
nombre.Text = ""
apellido.Text = ""
localidad.Text = ""
carrera.Text = ""
Me.control.Focus()
Else
MsgBox("Escriba el valor a ingresar")
End If
'Next (i)
End Sub
Private Sub evaluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pruebas.Click
Dim NCol As Integer = base.ColumnCount
Dim NRow As Integer = base.RowCount
Dim columna As String
Dim colim As String
For h As Integer = 1 To NCol
columna = base.Columns(h - 1).Name.ToString
Next
For Fila As Integer = NRow - 2 To 0 Step -1
For Col As Integer = NCol - 1 To 0 Step -1
colim = base.Rows(Fila).Cells(Col).Value
If Col = 5 Then
MsgBox("la carrera del alumno es " & colim)
Else
MsgBox("el dato seguro es " & colim)
End If
Next
Next
'MsgBox(" ncol " & NCol & " y nrow " & NRow)
End Sub
Private Sub pilas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pilas.Click
Dim NCol As Integer = base.ColumnCount
Dim NRow As Integer = base.RowCount
Dim columna As String
Dim colim As String
'Dim conti As String
Dim lopila As Stack
loPila = New Stack()
For h As Integer = 1 To NCol
columna = base.Columns(h - 1).Name.ToString
Next
For Fila As Integer = 0 To NRow - 2
For Col As Integer = 0 To NCol - 1
colim = base.Rows(Fila).Cells(Col).Value
' MsgBox(" colim es : " & colim)
lopila.Push(colim)
' MsgBox("el dato seguro es " & colim)
' MsgBox("estas son las pilas: " & lopila.Pop)
Next
Next
While lopila.Count > 0
' For conti As Integer = 0 To 5
MsgBox("CARRERA " & lopila.Pop & " LOCALIDAD " & lopila.Pop & " APELLIDO " & lopila.Pop & " NOMBRE " & lopila.Pop & " CONTROL " & lopila.Pop)
'Label6.Text = Label6.Text & " carrera " & lopila.Pop & " localidad " & lopila.Pop & " apellido " & lopila.Pop & " nombre " & lopila.Pop & " control " & lopila.Pop
' MsgBox("siguiente usuario")
' Next
End While
End Sub
End Class
el datagrid se llama base
muchas muchas GRACIAS
Publicar un comentario