Sección de códigos , trucos y ejemplos para visual basic
<Volver> - Anterior - Siguiente
Código fuente modificado por : Leandro Ascierto
Este ejemplo es muy similar a este otro: Exportar Microsoft Flexgrid a Html , con la diferencia que en este se pueden configurar las características y propiedades en la exportación:
La rutina que exporta los Items del ListView se llama Exportar_ListView_Html y tiene cuatro parámetros:
Call Exportar_ListView_Html(Path, ListView1, txt_titulo, txt_Pie)
El primero es la ruta y el nombre del archivo htm. El segundo el control ListView. El tercer y cuarto parámetro es el encabezado o título del listado y por último el pie de página
Vista del formulario de ejemplo
Nota: en el siguiente link, hay un ejemplo de como crear un asistente que permite configurar y exportar formularios de datos utilizando un módulo de clase : código fuente de Asistente para exportar listados
Controles del formulario:
Al exportar el ListView, el html se generará de esta forma:
Nota: Los valores que defienen el color de la fuente, color de la tabla, color de la página, tamaño de fuentes, el tipo, alineación del texto, tamaño del borde y demás propiedades, ..están definidas como constantes en el módulo bas.
Por eso, si es necesario cambiar las propiedades en tiempo de ejecución, se pueden eliminar las constantes, y agregarlas como parámetros al procedimiento que exporta. ( Aunque sería mucho mejor hacer un módulo de clase )
Código fuente en el Form1
Option Explicit '*************************************************************************** '* Ejemplo para exportar un control Listview a un archivo HTML _ '* Controles: Un CommandButton, un ListView, dos TextBox ( txt_titulo y txt_Pie), _ Nota: el archivo htm se genera en el App.path del proyecto '*************************************************************************** ' Botón que exporta el Listview '*************************************************************************** Private Sub Command1_Click() Dim Path As String Path = App.Path & "\" & App.EXEName & ".html" Call Exportar_ListView_Html(Path, ListView1, txt_titulo, txt_Pie) End Sub Private Sub Form_Load() Dim i As Integer Dim Item As ListItem 'Agega algunos items al ListView With ListView1 .View = lvwReport 'vista de reporte 'Agrega cuatro columnas .ColumnHeaders.Add , , " Columna A" .ColumnHeaders.Add , , " Columna B" .ColumnHeaders.Add , , " Columna C" .ColumnHeaders.Add , , " Columna D" .GridLines = True End With 'Añade 100 Items For i = 0 To 100 Set Item = ListView1.ListItems.Add(, , CStr(i)) Item.SubItems(1) = "SubItem A : " & i Item.SubItems(2) = "SubItem B : " & i Item.SubItems(3) = "SubItem C : " & i Next Set Item = Nothing Me.Caption = " Ejemplo - exportar Listview a Htm " txt_titulo = " Listado de ejemplo - Exportar listview a Html " txt_Pie = " Fin del listado " Command1.Caption = " Exportar a Html " End Sub
Código en el módulo bas
Sub Exportar_ListView_Html(Path_Html As String, _
ListView As ListView, _
TEXTO_ENCABEZADO As String, _
TEXTO_PIE As String)
Dim codigo_Html As String
Dim Fila As Integer
Dim Columna As Integer
Dim fname As String
Dim F As Integer
Dim Item As ListItem
Screen.MousePointer = vbHourglass
F = FreeFile
Open Path_Html For Output As F
'Etiqueta de inicio de la tabla, Color de la Tabla y el borde
codigo_Html = "<TABLE width=100% BORDER=" & SIZE_BORDE_TABLA &
_
" Bordercolor=" & COLOR_BORDE_TABLA & " bgcolor=" & _
COLOR_FONDO_TABLA & ">" & vbCrLf
'Crea la etiqueta de apertura para los encabezados de columna
codigo_Html = codigo_Html & "<TR bgcolor=" & _
COLOR_FONDO_ENCABEZADO & "> " & vbCrLf
'Recorre las columnas del ListView ..si es que tiene
For Columna = 1 To ListView.ColumnHeaders.count
codigo_Html = codigo_Html & " <TH><div align=" & _
ALIGN_ENCABEZADO & "><font size=" & _
FONT_SIZE_ENCABEZDO & " face=" & _
FONT_NAME_ENCABEZDO & _
" color=" & COLOR_FUENTE_ENCABEZADO & ">" & _
ListView.ColumnHeaders(Columna).Text & _
"</font></div></TH>" & vbCrLf
Next Columna
codigo_Html = codigo_Html & "</TR>" & vbCrLf
Print #F, codigo_Html
codigo_Html = ""
' Recorre las filas y las columnas del listview y genera el _
etiquetado. ( lo va almacenando en la variable " codigo_Html "
For Fila = 1 To ListView.ListItems.count
'Etiqueta de apertura de la fila
codigo_Html = codigo_Html & "<TR bgcolor=" & _
COLOR_FONDO_CELDA & " > " & vbCrLf
'Etiqueta de apertura, propiedades de la celda y el valor del item actual
codigo_Html = codigo_Html & " <td><div align=" & _
ALIGN_FUENTE_CELDA & "><font color=" & _
COLOR_FUENTE_CELDA & " size=" & _
FONT_SIZE_CELDA & " face=" & _
FONT_NAME_CELDAS & ">" & _
ListView.ListItems(Fila).Text & _
"</font></div></td>" & vbCrLf
'Recorre los subitems ...si es que hay
For Columna = 2 To ListView.ColumnHeaders.count
codigo_Html = codigo_Html & " <td><div align=" & _
ALIGN_FUENTE_CELDA & "><font color=" & _
COLOR_FUENTE_CELDA & " size=" & _
FONT_SIZE_CELDA & " face=" & _
FONT_NAME_CELDAS & ">" & _
ListView.ListItems(Fila).SubItems(Columna - 1) & _
"</font></div></td>" & vbCrLf
Next
' Cierra la etiqueta de la fila actual
codigo_Html = codigo_Html & "</TR>" & vbCrLf
Print #F, codigo_Html
codigo_Html = ""
Next
' Cierra la etiqueta HTML de la Tabla
codigo_Html = "</table>" & vbCrLf
'Agrega las etiquetas restantes y el pie de página
codigo_Html = "<HTML><HEAD></HEAD><BODY BGCOLOR=" _
& COLOR_FONDO_PAGINA & ">" & vbCrLf & _
"<p><font face=verdana size=" & _
FONT_SIZE_TITULO & " color=" & _
COLOR_FUENTE_TITULO & ">" & _
TEXTO_ENCABEZADO & _
"</font></p><HR>" & codigo_Html & _
"<HR><font face=verdana size=" & _
FONT_SIZE_PIE & " color=" & _
COLOR_FUENTE_TITULO & _
">" & TEXTO_PIE & "</font></BODY></HTML>"
'Abre y Crea el archivo Html
'Escribe los datos
Print #F, codigo_Html
Close
Screen.MousePointer = vbNormal
'fin
MsgBox " Archivo Html generado en: " & vbCrLf & Path_Html, vbInformation
End Sub
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar