Asunto: Exportar contenido de ListView de VB.Net a fichero CSV Excel
Estoy desarrollando una aplicación con VB.Net Visual Basic .Net, uso la versión que viene con Visual Studio .Net 2010. Tengo un componente de tipo ListView con varias columnas donde muestro una serie de datos ¿cómo puedo exportar estos datos del ListView a un fichero CSV separado por comas o punto y coma? este tipo de ficheros CSV he leído que se abren con Microsoft Office Excel, con OppenOffice Calc o con LibreOffice Calc.
Publicado:
Lun Abr 25, 2011 6:22 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Exportar contenido de ListView de VB.Net a fichero CSV E
Anuncios
varios escribió:
Estoy desarrollando una aplicación con VB.Net Visual Basic .Net, uso la versión que viene con Visual Studio .Net 2010. Tengo un componente de tipo ListView con varias columnas donde muestro una serie de datos ¿cómo puedo exportar estos datos del ListView a un fichero CSV separado por comas o punto y coma? este tipo de ficheros CSV he leído que se abren con Microsoft Office Excel, con OppenOffice Calc o con LibreOffice Calc.
En el siguiente enlace tienes un procedimiento que exporta un ListView pasado como parámetro a fichero CSV:
Lo he probado y funciona, pero no va bien si hay en el texto el carácter ";" ¿cómo puedo separarlos por comillas dobles y por punto y coma? sería algo así:
"campo1";"campo2";"campo3"
Publicado:
Lun Abr 25, 2011 7:21 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Exportar contenido de ListView de VB.Net a fichero CSV E
Anuncios
varios escribió:
Lo he probado y funciona, pero no va bien si hay en el texto el carácter ";" ¿cómo puedo separarlos por comillas dobles y por punto y coma? sería algo así:
"campo1";"campo2";"campo3"
Puedes usar esto:
Código:
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(Chr(34) & "{0}" & Chr(34) & ";", 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(Chr(34) & "{0}" & Chr(34) & ";", 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
En realidad sólo hemos cambiado (String.Format("{0};", por:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A