xlwings: Usa herramientas de análisis de Python en Excel

xlwings gif

Xlwings es una librería diseñada para el análisis de información avanzado a base del lenguaje de programación Python y, por supuesto, compatible con Excel.

Para usar esta herramienta es necesario que tengas algún programa compatible con Python, como Anaconda, el cual es gratis y puedes descargar aquí.

La mayor ventaja que ofrece Anaconda sobre cualquier otro traductor de Python es su vasta selección de herramientas que vienen precargadas. Aquí usaremos la aplicación Spyder para interpretar xlwings.

anaconda 3 navigator

1. Preparando Anaconda y xlwings

Una vez tengas Anaconda instalado, lo primero será abrir «Anaconda Prompt» para desccargar xlwings. Al abrir Prompt se abrirá una pantalla negra de comandos, sobre la cual debemos escribir lo siguiente:

pip install xlwings 

Luego damos a Enter y esperar a que termine de instalarse.

conda install xlwings

Adicionalmente, es posible realizar instalaciones desde el forge (versión de desarrolladores) para tener la versión más actualizada. Una vez más desde Anaconda Prompt introduce lo siguiente:

-c conda-forge xlwings

Enter y esperar a que termine la instalación.

2. Vinculando con Excel

Con eso listo, vamos a crear un script que usaremos para vincular con nuestro libro de Excel.

Primero iremos a Spyder y abriremos un nuevo espacio de trabajo, después importaremos la librería de trabajo xlwings.

import xlwings as xw

Dependiendo del tipo de archivo que sea nuestro libro a vincular y la información que queramos usar se tendrá que utilizar formas distintas. Debajo de la línea import xlwings as xw que introducimos anteriormente habrá que introducir alguno de los siguientes comandos:

Si aun no hay archivo y queremos crear un libro nuevo:

wb = xw.Book()

Si se trata de un libro ya abierto pero sin guardar:

wb = xw.Book('Book1')
#(Siendo 'Book1' el nombre del libro de Excel con que estemos trabajando)

Con un libro ya guardado en nuestros archivos:

wb= xw.Book('C:/usuarios/nombredeusuario/carpeta/archivo.xlsx')
#(Siendo el paréntesis la ruta del archivo y conservando los apóstrofes ['])

Para manipular solo hojas específicas podemos declarar en una nueva variable llamada «sht» lo siguiente:

Si queremos escoger la hoja 1:

sht = wb.sheets(1)
#(Aplicable a cualquier página del libro cambiando el número correspondiente)

Si queremos escoger una hoja por su nombre:

sht = wb.sheets('Sheets1')
#(Siendo el paréntesis el nombre de la hoja y conservando los apóstrofes [']) 

Con esto hecho, podremos depositar valores en una hoja de cálculo o tomar datos de la misma y trabajar con ellos usando lenguaje Python. Esto lo haremos en Spyder de la siguiente forma:

Si queremos depositar datos en la hoja de cálculo:

sht.range('A1').value = 10

Si queremos tomar valores de una hoja de cálculo a Spyder.

data = sht.range('A1:B10').value

Un código básico simple en Spyder se vería algo así:

import xlwings as xw
wb = xw.Book()
sht = wb.sheets(1)
sht.range('A1').value = 10
xlwings ejemplo basico

3. Add-in y otras caracteristicas

Con lo anterior ya listo será posible empezar a utilizar código en lenguaje Python para manejar la información del libro en Excel. Las ventajas de esto es poder tener acceso a las miles de librerías que ofrece Python para análisis avanzado y machine learning.

xlwings python udf

Una de las mejoras recientes de xlwings es el Add-in, desarrollado para manipular funciones y utilizar distintos tipos de archivos Python sobre un mismo archivo de Excel. Puedes descargarlo desde este enlace.

xlwings add in

Esta es una adición increíble para Excel. Aquí abajo tienes un pequeño código de ejemplo. Solo copia el bloque de abajo y pégalo en Spyder para que lo pruebes por tu cuenta y veas su funcionamiento en vivo y a todo color:

import xlwings as xw
 import pandas as pd
 import matplotlib.pyplot as plt

wb = xw.Book()
 sht = wb.Sheets(‘Sheet1’)
 df = pd.DataFrame([[1,2],[3,4]], columns=[‘a’,’b’])
 sht.range(‘A1’).value = df

fig = plt.figure()
 plt.plot([1,2,3,4,5])
 sht.pictures.add(fig, name=’Myplot’, update=True)

Si quieres empezar a conocer mas de Python puedes revisar mis notas de introducción aqui.

Nos leemos abajo.

xlwings: Usa herramientas de análisis de Python en Excel
Scroll hacia arriba