Exportar datos de Visual basic a Word

Algunas veces cuando desarrollamos aplicaciones es necesario crear reportes, y comúnmente se nos viene a la mente diversas formas de crearlos, muchos programadores que conozco utilizan la aplicación Crystal Reports, aun en mi trabajo el área administrativa utiliza este software, sin embargo algunos no contamos con dicha licencia para crear aplicaciones comerciales, por lo que nos quedan como opciones utilizar MSExcel, o en su caso MSWord, para este post expkicare a grandes rasgos como enviar algunos datos desde VB6 a MSWord.


'declaramos los objetos
Public MSWord As New Word.Application
Public Documento As Object

Private Sub cmd_exportar_click()

                'Establecemos la ruta de nuestro archivo
                ruta = App.Path & "\orden.doc"

                'Seteamos el archivo al objeto documento
                Set Documento = MSWord.Documents.Open(ruta)

                'opcionalmente podemos guardar el archivo
                'en mi caso lo guardo con una extensión diferente (cab|tmp|pot|etc)
                MSWord.Selection.Document.SaveAs (App.Path & "\printme.cab&quot ;) 

                'Establecemos la fuentre que utilizaremos
                MSWord.Selection.Font.Name = "Arial"

                'Configuramos la alineacion de nuestro parrafo
                MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphCenter

                'Activamos la fuente en Negrita
                MSWord.Selection.Font.Bold = True

                'Y el tamaño a 16 puntos
                MSWord.Selection.Font.Size = 16

                'con esta opcion podemos comenzar a escribir dentro de nuestro docuemnto
                MSWord.Selection.TypeText "Aqui podemos escribir el texto en el documento" & vbCrLf

                'Declaramos una tabla de 1 fila por 3 columnas
                MSWord.Selection.Tables.Add MSWord.Selection.Range, 1, 3

                'Seleccionamos la celda 1,2
                MSWord.Selection.Tables(1).Cell(1, 2).Select

                'establecemos el ancho de la celda
               MSWord.Selection.Tables(1).Cell(1, 2).Width = 70

                'configuramos los bordes
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderTop).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderLeft).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderBottom).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderRight).Visible = True

                'Y la alineación del texto dentro de la celda
                MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphLeft

                'Seguido escribimos texto en dicha celda
                MSWord.Selection.TypeText "Nombre"

                'seleccionamos la celda 1,3
                MSWord.Selection.Tables(1).Cell(1, 3).Select

                'Establcemos el color de fondo de la celda (Trama)
                MSWord.Selection.Cells.Shading.BackgroundPatternColor = wdColorGray20

                'Escribimos en dicha celda
                MSWord.Selection.TypeText "nombre2"

                'esta opcion nos permite salir de la edición de la tabla, o bajar una fila
                MSWord.Selection.MoveDown

                'por ultimo mostramos el documento de word
                MSWord.Visible = True

                'vaciamos los objetos de la  memoria
                Set documento = nothing
                Set Msword=nothing

end sub

con esto podemos establecer los datos del reporte que encesitemos, auqnue es algo mas laborioso que utilizar Crystal Reports, es una opción que hay que tomar en cuenta. espero le sea de ayuda a alguno de los lectores.

saludos (^o^)_v

7 Comments »

  1. Anabel said,

    May 8, 2008 @ 3:34 pm

    Muchas gracias!! lo voy a probar, yo tambien tengo problemas con los reportes y el datareport ademas de ser limitado tiene problemas

  2. Ricardo Vega said,

    May 28, 2008 @ 4:01 pm

    bueno el aporte muchas gracias, me sirvió, saludos

    quique

  3. jorge said,

    June 28, 2008 @ 9:25 pm

    chido el aporte, gracias amigo me sirvio de mucho sigue asi aportando conocimientos para que este mundo sea cada vez mejor. :)

  4. Dvorak said,

    June 29, 2008 @ 2:59 pm

    que bueno que les hay servido el proceso, ya veremos que otro poner mas adelante, saludos

  5. wikiland said,

    June 30, 2008 @ 12:58 pm

    hola necesito un analisador que tenga lexico, sintactico, y semantico hagan un aporte o envienmelo a mi mail plisss

  6. Dvorak said,

    June 30, 2008 @ 1:18 pm

    Lo siento en esta pagina no desarrollo proyectos, pero te recomiendo utilizar listas, para tu analizador, probablemente sea mas fácil desarrollarlo en C, C++.

    saludos

  7. monica said,

    July 3, 2008 @ 9:22 am

    Hola, muy buen aporte… el problema que tengo es para insertar los encabezados y pies de página al documento de Word generado desde vb6, siendo los datos utilizados diferentes para cada reporte, ya q se toman datos de la organización. Te agradecería mucho una ayudita con esto…

    Saludos

    Mónica

RSS feed for comments on this post · TrackBack URI

Leave a Comment