Cómo exportar el contenido de un ListView a fichero CSV (eligiendo el carácter de separación). Dicho fichero podrá ser abierto por Libre Office Calc, Office Excel o cualquier otro editor de ficheros CSV (Comma Separated Values).

Función que exportar un ListView a un fichero CSV en Delphi

A continuación mostramos el código Pascal (Delphi) para exportar un ListView (que se pasa como parámetro) a un fichero CSV (también pasado como parámetro), eligiendo el separador a usar de cada campo y si queremos exportar los títulos del ListView:

La función anterior devolverá false si ha habido algún error en la exportación a CSV y true si se ha exportado correctamente.

Ejemplo de uso de la función exportarListViewACSV que exporta un ListView a CSV

Para usar la función necesitaremos disponer de un ListView en el formulario de nuestra aplicación, por ejemplo:

Ejemplo de uso de la función exportarListViewACSV  que exporta un ListView a CSV

El ListView anterior, llamado «lsTareas», lo usaremos para mostrar las tareas (intervenciones) realizadas por un técnico. Es un ejemplo de un ListView con tres columnas: Técnico, Intervención, Fecha. Añadiremos también un botón (TButton) que será el que realice la ejecución de la función exportarListViewACSV para exportar el contenido del ListView a fichero CSV. Dicho botón tendrá el siguiente código en su evento Click:

En el código anterior, para ejecutar la función exportarListViewACSV, le indicamos la ruta y nombre del fichero CSV donde se exportará el contenido del ListView y también indicaremos el carácter separador de campos, en nuestro caso «;» y si queremos que también guarde los títulos de las columnas del ListView, en nuestro casó sí que los guardaremos con «true».

Para que el código del botón de exportar funcione necesitaremos agregar un componente de tipo TSaveDialog de la pestaña «Dialogs» de componentes:

Ejemplo de uso de la función exportarListViewACSV  que exporta un ListView a CSV

Dicho TSaveDialog tendrá el nombre «dlGuardar».

Ejecutando la aplicación de ejemplo para exportar el contenido de un ListView en Delphi a fichero CSV

Si agregamos contenido al ListView y pulsamos el botón de exportar:

Ejecutando la aplicación de ejemplo para exportar el contenido de un ListView en Delphi a fichero CSV

Nos solicitará dónde queremos guardar el contenido y el nombre del fichero CSV:

Ejecutando la aplicación de ejemplo para exportar el contenido de un ListView en Delphi a fichero CSV

Nos habrá generado un fichero «tareas.csv» con el siguiente contenido:

Abrir fichero CSV exportado con Libre Office Calc y Excel

Dicho fichero CSV puede abrirse, por ejemplo, con LibreOffice Calc:

Abrir fichero CSV exportado con Libre Office Calc y Excel

Libre Office Calc detectará que se trata de un fichero CSV y nos mostrará las opciones de división de campos, en nuestro caso con separador «Punto y coma». No tendremos que hacer nada, directamente nos detectará el separador, pulsaremos «Aceptar»:

Abrir fichero CSV exportado con Libre Office Calc y Excel

Nos cargará el contenido del fichero CSV separado por las columnas correspondientes a los títulos del ListView, listo para ser usado:

Abrir fichero CSV exportado con Libre Office Calc y Excel

Para el caso de Excel, de Microsoft Office, abriremos el fichero tareas.csv:

Abrir fichero CSV exportado con Libre Office Calc y Excel

Y en el caso de Excel de Office 2019, abre el fichero CSV con sus separadores correctos, sin mostrar opciones, listo para ser usado:

Abrir fichero CSV exportado con Libre Office Calc y Excel