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