Exportar Datagridview a Word
Hola amigos, en esta entrada vamos a exportar un Datagridview a una tabla de Word haciendo referencia a las librerias de Microsoft Office que en la mayoria de pcs Windows incluyen. Este ejemplo se basa en el ejemplo propuesto en:http://www.elnaufragodelared.com/2012/09/exportar-de-datagridview-word-en-visual.html
De acuerdo al ejemplo corremos el programa y obtenemos:
Mi ejemplo
https://drive.google.com/open?id=0B-UGWA03tc5ZQjdXaXZyNHhCRWc
Y llegamos al final, un gusto y comentarios y/o preguntas a mi correo, nos vemos
Aquí presento el código completo:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'GENERAR Y RELLENAR EL DATAGRIDVIEW
Try
Dim n As Integer = 6 ' cualquier valor para sumar
Dim cantidad(n) As Integer 'matriz para almacenar hasta n valores
Dim valor As Double = 0.18 'valor de un articulo en común ....para ejemplificar
Dim subtotal(n) As Double ' matriz que almacena los subtotales de cada compra
Dim suma As Double 'total de la suma de la columna subtotal
For i As Integer = 0 To n - 1
cantidad(i) = i 'Val(InputBox("Ingresar cantidad Nº" & i + 1)) 'Entrada manual
Next
For i As Integer = 0 To n - 1
subtotal(i) = cantidad(i) * valor
suma = suma + subtotal(i)
Next
grid1.Rows.Add(n + 1) 'numero de filas del grid
For r As Integer = 0 To n - 1
grid1.Item(0, r).Value = r + 1
grid1.Item(1, r).Value = Format(cantidad(r), "0.00")
grid1.Item(2, r).Value = Format(valor, "0.00")
grid1.Item(3, r).Value = Format(subtotal(r), "0.00")
grid1.Item(2, n).Value = "TOTALES="
grid1.Item(3, n).Value = Format(suma, "0.00")
Next
Catch ex As KeyNotFoundException
MessageBox.Show("Error de concurrencia:" & vbCrLf & ex.Message)
End Try
End Sub
Private Sub BtnExpWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExpWord.Click
Dim objWordApp As Object
Dim objWordDoc As Object
objWordApp = CreateObject("Word.Application")
objWordDoc = objWordApp.documents.add()
objWordDoc.tables.add(objWordDoc.range(0, 0), 7, 4)
With objWordDoc.tables(1)
.borders.InsideLineStyle = 1
.borders.OutsideLineStyle = 1
For i As Integer = 0 To 6
.rows(i + 1).cells(1).range.text = grid1.Item(1, i).Value 'grid1.Rows(i + 1).Cells("n").Value
.rows(i + 1).cells(2).range.text = grid1.Item(2, i).Value 'grid1.Rows(i + 2).Cells("Cantidad").Value
.rows(i + 1).cells(3).range.text = grid1.Item(3, i).Value 'grid1.Rows(i + 3).Cells("Valor").Value
Next
End With
objWordApp.visible = True
objWordApp = Nothing
End Sub
End Class
De acuerdo al ejemplo corremos el programa y obtenemos:
Mi ejemplo
https://drive.google.com/open?id=0B-UGWA03tc5ZQjdXaXZyNHhCRWc
Y llegamos al final, un gusto y comentarios y/o preguntas a mi correo, nos vemos


Comentarios
Publicar un comentario