Apuntes mientras aprendo sobre software y computadoras.

programación

Cómo convertir archivos xls en xlsx con Python y Pandas

En este apunte extremadamente rápido voy a revisar cómo puedo convertir archivos xls en xlsx de forma automática utilizando Python y Pandas.

Ya en el apunte anterior estuve estudiando una forma en la cual podía buscar dentro de un archivo de Excel por información específica, copiando luego esos datos dentro de una nueva planilla.

Para realizar esto utilicé un pequeño programa escrito en el lenguaje de programación Pyhon, haciendo uso de la librería Openpyxl.

Lo que ocurre es que aunque Openpyxl me permite abrir y modificar archivos de Excel, solo permite trabajar con los que tienen la extensión “.xlsx” o “.xlsm”. Esto puede resultar en algunos inconvenientes porque muchos archivos aun siguen guardados como “.xls”, una extensión más antigua, y el programa no los reconoce.

Es cierto que es posible convertir antes los archivos utilizando el mismo Excel o un programa como LibreOffice. Pero me interesa hacerlo dentro del contexto de un programa de Python, de forma de poder conseguir el cambio de formatos de manera automática.

Por eso sin más introducción….

El código:

A continuación pueden revisar el código, por si les interesa utilizarlo directamente. Luego voy a intentar ofrecer al menos una explicación superficial sobre cómo funciona.

import pandas as pd

# convierte un archivo en formato xls en otro formato xlsx

def convertir():
    df = pd.read_excel('lista.xls', header=None)
    df.to_excel('nueva_lista.xlsx', index=False, header=False)

convertir()

Entendiendo el programa:

Lo primero que hago es asegurarme de tener la librería Pandas en mi equipo.

Pandas, según su sitio web, se utiliza como herramienta de código abierto para el análisis y la manipulación de datos.

Puedo instalar Pandas con el siguiente comando desde la terminal:

pip install pandas

Luego, en la primera linea del código en Python propiamente dicho, tengo:

import pandas as pd

Según entiendo, con esto traigo el módulo para poder usarlo dentro del código. Y al traerlo bajo el nombre “pd” puedo invocarlo rápidamente de manera directa con esas siglas.

Lo siguiente es crear un función, para usarla luego. Le puse de nombre a esa función “convertir” y en su interior tengo:

modificar = pd.read_excel('lista.xls', header=None)

La primera variable, llamada “modificar”, le pide al programa que lea el archivo Excel “lista.xls”. Este código trabaja en el mismo directorio en el que se encuentra instalado, por lo que esta planilla se encuentra en esa misma carpeta.

La segunda linea de la función dice:

modificar.to_excel('lista_nueva.xlsx', index=False, header=False)

Y lo que hace es que el programa revise la variable anterior, y la utilice para crear un nuevo archivo. Este nuevo archivo ya tiene la extensión “.xlsx” y se llama “lista_nueva”.

El nuevo archivo se va a generar también en el mismo directorio que el anterior documento “xls”. Los dos archivos van a existir a la vez, no voy a borrar nada.

Y eso es todo, ahora cuando llamo a la función:

convertir()

El programa crea un nuevo documento, con el nombre y la extensión pedida.

Conclusión:

Espero con este breve apunte poder ayudar con una forma de convertir archivos xls en xlsx directamente con Python.

Seguramente existen otras formas, pero esta es bastante útil y me sirvió hasta el momento.

Cualquier error que encuentres en el texto, te pido por favor que me avises para que pueda arreglarlo. Del mismo modo, me gustaría leer cualquier comentario o crítica que tengas, ya sea en los comentarios o enviando un correo electrónico en la sección de contacto.

La seguimos en el próximo apunte.

Recursos:

– Instalación básica de Pandas

– Instalación de Pandas versión avanzada

Leave a Reply