Lenguaje de programación Visual Basic .Net
Explicamos cómo exportar el contenido de un ListView con varias columnas a un fichero de texto plano separado por punto y coma, que se puede abrir con Office Excel, OpenOffice Calc o con LibreOffice Calc.
La función para exportar un ListView a CSV con VB .Net:
'Exportar contenido ListView a formato CSV
'para abrir con Microsoft Office Excel, OppenOffice Calc o con
Private Sub exportarListViewCSV(ByVal lstview As ListView, ByVal ficheroCSV As String)
Dim lineasCSV As New System.Text.StringBuilder
Dim lineaActual As String = String.Empty
'Escribir nombre de columnas y encabezados en la variable temporal
For columnIndex As Int32 = 0 To lstview.Columns.Count - 1
lineaActual &= (String.Format("{0};", lstview.Columns(columnIndex).Text))
Next
'Quitar la coma final
lineasCSV.AppendLine(lineaActual.Substring(0, lineaActual.Length - 1))
lineaActual = String.Empty
'Escribir los datos del ListView en la variable temporal
For Each item As ListViewItem In lstview.Items
For Each subItem As ListViewItem.ListViewSubItem In item.SubItems
lineaActual &= (String.Format("{0};", subItem.Text))
Next
'Quitar coma final
lineasCSV.AppendLine(lineaActual.Substring(0, lineaActual.Length - 1))
lineaActual = String.Empty
Next
'Guardar datos variable temporal a fichero CSV
Dim Sys As New System.IO.StreamWriter(ficheroCSV)
Sys.WriteLine(lineasCSV.ToString)
Sys.Flush()
Sys.Dispose()
End Sub
Un ejemplo de uso de la función anterior (con un SaveFileDialog llamado dlGuardar):
dlGuardar.Filter = "Archivos CSV (*.csv)|*.csv|Todos los archivos (*.*)|*.*"
dlGuardar.FilterIndex = 1
dlGuardar.DefaultExt = "csv"
dlGuardar.FileName = "Eventos google calendar"
dlGuardar.OverwritePrompt = True
dlGuardar.Title = "Guardar eventos Google Calendar"
If dlGuardar.ShowDialog Then
exportarListViewCSV(lsCitas, dlGuardar.FileName)
End If
Publicado el: 2011-04-25