XLSX a CSV en Python

Xlsx A Csv En Python



En los últimos años, Python se ha convertido en uno de los lenguajes de programación dominantes. La comunidad de Python se ha expandido significativamente como resultado de la popularidad y utilidad de Python. Entraremos en detalles en este artículo sobre cómo usar Python para convertir XLSX a CSV. Somos conscientes de que los archivos de Excel se usan con frecuencia para realizar análisis financieros, organizar datos, ingresar datos, contabilidad, administrar datos, crear tablas y gráficos, etc. Sin embargo, preferimos usar archivos CSV para importar y exportar datos. Un enfoque es transferir los datos estructurados utilizando un archivo de texto sin formato.

¿Qué es un archivo Xslx?

Al crear hojas de cálculo en las últimas versiones de Excel, Microsoft utiliza un archivo XLSX como tipo de archivo predeterminado. Similar al tipo de archivo DOCX de Word, podemos abrir los archivos XLSX usando una variedad de aplicaciones/programas.

¿Qué es un archivo CSV?

El formato de archivo CSV es lo que podemos usar para almacenar los valores de datos tabulares en hojas de cálculo y bases de datos. Los datos tabulares, texto o texto, se almacenan como texto sin formato en un archivo CSV. Un registro en el archivo CSV es el valor de datos almacenado en cada fila del archivo. Cada registro puede tener más de un campo separado por comas.







Diferencias clave entre los archivos XLSX y CSV

Los usuarios a menudo usan CSV y XLSX indistintamente y, por lo general, desconocen las distinciones entre ellos, cuáles son sus características fundamentales y cómo funcionan. Sólo sirve como fuente de información para el usuario. Casi todas las empresas y corporaciones usan ambos para ayudar a los usuarios a administrar, actualizar y almacenar los datos para el usuario. Las siguientes son algunas diferencias clave entre los archivos XLSX y CSV que debe conocer:



  • El formato CSV guarda datos tabulares en un archivo de texto delimitador con la extensión .csv. Mientras que el archivo Excel o XLSX es una hoja de cálculo que almacena archivos en su formato propietario, a saber. xls o XLSX.
  • Los archivos de Excel son archivos binarios que contienen los datos de cada hoja de cálculo de un libro. Considerando que, CSV es un formato de texto plano y simple con una secuencia de valores de datos separados por comas.
  • No se pueden realizar operaciones de datos en archivos CSV. Sin embargo, se pueden realizar en archivos de Excel.
  • Los archivos CSV son más rápidos y usan menos memoria que los archivos XLSX. Sin embargo, Excel usa más memoria al importar los datos.
  • Si comparamos CSV con Excel, podemos abrir los archivos CSV en cualquier editor de texto de Windows mientras que los archivos de Excel no pueden.

¿Cómo se puede convertir un archivo XLSX a CSV usando Python?

Un archivo XLSX se puede transformar en un archivo CSV en Python usando una variedad de métodos. Python incluye una variedad de módulos y funciones que pueden ayudarnos a realizar esta tarea. Aquí, veremos un par de métodos que se pueden usar para convertir los archivos XLSX a archivos CSV en Python.



Requisitos previos para realizar la conversión de Excel a CSV

Instalar los requisitos es el primer paso. Usamos los módulos como combinar Pandas, CSV y Openpyxl, etc. en este tutorial. El paquete Pandas de Python permite la manipulación y el análisis de datos. Pandas es una biblioteca muy conocida entre los programadores de Python. Los archivos de Excel se pueden leer y escribir usando el paquete de Python conocido como Openpyxl. No trataremos directamente con esta biblioteca. En cambio, Pandas hace uso de Openpyxl internamente.





Usando el repositorio de PyPI, podemos instalar ambos paquetes:

Método 1: Convertir XLSX a CSV usando el módulo Pandas

Ejemplo 1: Conversión de un archivo XLSX a CSV



Pandas es un módulo de código abierto creado para el lenguaje de programación Python para manipular y analizar los datos. Para trabajar con series de tiempo y tablas numéricas, Pandas proporciona una variedad de funcionalidades y características. Con pandas, se pueden leer, filtrar y reorganizar conjuntos de datos pequeños y grandes. Y los resultados se pueden producir en una variedad de formatos, como Excel, JSON y CSV. Usamos el método read_excel() de Pandas para leer un archivo de Excel y el método to_csv() para transformar el DataFrame en un archivo CSV.

Imprimimos nuestro archivo .csv como un DataFrame como se puede ver en la salida. El script anterior convierte nuestro archivo XLSX en CSV y crea un archivo 'salario.csv' en el directorio actual.

Ejemplo 2: Conversión de archivo XLSX (con varias hojas) a CSV

En el ejemplo que sigue, primero leemos los nombres de las hojas del archivo de Excel. Los nombres de las hojas individuales luego se repiten y se guardan como archivos CSV distintos. El script guarda los CSV en la misma ubicación.

Usamos un archivo XLSX de muestra que tiene dos o más hojas de trabajo u hojas de cálculo.

Como puede verse, nuestro archivo XLSX consta de dos hojas (hoja1 y hoja2). Ahora, escribimos un código para convertir este archivo XLSX en CSV.

Producción:

El script convirtió con éxito el archivo XLSX con dos hojas en un solo archivo CSV con una sola hoja.

Ejemplo 3: Conversión de múltiples archivos XLSX en archivos CSV separados

Considere un escenario en el que necesita convertir varios archivos de Excel en su directorio de trabajo a CSV. Podrías emplear este método. Comenzamos asumiendo que cada archivo solo contiene una hoja. Luego, extendemos nuestro método para manejar múltiples archivos y varias hojas. El código de Python que sigue hace uso del módulo estándar global. Hacemos coincidir las rutas de los archivos usando patrones con Glob. Coincide con todos los archivos con la extensión .xlsx en el directorio de trabajo. Después de eso, desarrollamos una función que lee los archivos de Excel y los guarda como archivos CSV. Llamamos a esta función en cada ruta de archivo que se encuentra.

Este script anterior convierte todos los archivos xlsx del directorio actual en archivos CSV.

Ahora, convertimos los archivos XLSX con varias hojas de cálculo a CSV. Esta es probablemente la parte difícil. Tres archivos de Excel están en nuestro directorio de trabajo. Además, algunos de ellos constan de más de una hoja. Apuntamos a:

  1. Cree un directorio para cada archivo de hoja de cálculo,
  2. Convierta las hojas de archivo de Excel a CSV y deben guardarse en el directorio recién creado.

El script convierte el XLSX con hojas únicas y múltiples en archivos CSV separados y los almacena en nuevos directorios con el mismo nombre.

Para recuperar todos los archivos de Excel ubicados en el directorio actual, se utiliza la función global. Después de eso, se crean carpetas para cada archivo XLSX usando la función os.mkdir. Luego se crea un archivo CSV para cada hoja dentro del nuevo directorio haciendo un bucle sobre el nombre de la hoja.

Método 2: Conversión de XLSX a CSV usando módulos Openpyxl y CSV

En este método, usaremos los módulos openpyxl y CSV para convertir los archivos XLSX a CSV. Para leer y escribir archivos xlsx, xlsm, xltx y xltm de 2010, se puede usar el módulo openpyxl de Python. El módulo CSV incluye clases que permiten la lectura y escritura de datos tabulares con formato CSV.

Para leer o cargar nuestro archivo xlsx, usamos la función load_workbook() del módulo openpyxl. Puede usar esta función si necesita escribir o leer un archivo XLSX/Excel existente en Python. Después de activar Excel, usamos la función csv.writer() para crear nuestro archivo CSV. Luego, el bucle for se usa para almacenar los datos en las celdas de datos del archivo CSV. Convertimos nuestro archivo ejemplo.xlsx en myfile.csv como se ve en la siguiente imagen:

Conclusión

En este tutorial, le brindamos una breve introducción a los archivos XLSX y CSV. Explicamos las diferencias clave entre ambos formatos de archivo. Discutimos dos métodos con múltiples ejemplos para enseñar cómo los archivos XLSX con una o varias hojas se pueden convertir en archivos CSV. Implementamos un ejemplo para convertir varios archivos XLSX en archivos CSV simultáneamente. Puede ser simple o difícil convertir los datos de Excel a CSV. Si solo tiene un archivo con una pequeña cantidad de hojas, es simple. Pero si no, puede ser difícil.