API Python de código abierto para Hojas de cálculo de Google

Biblioteca de Python que facilita llamar a Python desde Excel y viceversa.

Xlwings es una API de Python de código abierto para manipular el formato de archivo de Excel. Con la API, puede automatizar Excel desde Python para producir informes, escribir UDF (funciones definidas por el usuario), escribir macros y controlar Excel de forma remota. Además, la API permite manipular estructuras de datos como celdas, listas, rangos, matrices NumPy, marcos de datos panda y series panda.

Xlwings requiere la instalación de Microsoft Excel, por lo que todo funciona en Windows y macOS, excepto que las UDF solo funcionan en Windows.

Previous Next

Primeros pasos con Xlwings

Debe tener Python 3.5 o superior instalado en su sistema para ejecutar xlwings sin problemas. La forma recomendada de instalar a través de PIP. Utilice el siguiente comando.

Instale Xlwings a través del comando PIP

pip install xlwings

Instalar Xlwings a través de Conda

conda install xlwings

Interactuar con Excel desde Python

La API de Xlwings permite manipular hojas de cálculo de Microsoft usando Python. Usando la API, puede conectarse a un libro de trabajo existente o crear uno nuevo usando el método xlwings.Book(). Puede leer/escribir valores hacia y desde rangos, expandir rangos, convertir tipos de datos fácilmente. Además, puede agregar gráficos de Matplotlib y Plotly como imágenes en sus libros de Excel.

Obtener dimensiones de Excel Gamas dinámicamente a través de Python

sheet = xw.Book().sheets[0]
sheet['A1'].value = [[1,2], [3,4]]
range1 = sheet['A1'].expand('table')  # or just .expand()
range2 = sheet['A1'].options(expand='table')
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value
[[1.0, 2.0], [3.0, 4.0]]
sheet['A3'].value = [5, 6]
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value

Llamar a Python desde Excel

La biblioteca de hojas de cálculo de código abierto Xlwings permite a los desarrolladores de software comunicarse con Python a través de Excel. Puede llamar a las funciones de python dentro de su Excel usando el botón Ejecutar del complemento Xlwings Excel o usando la función RunPython VBA. Lo bueno de usar el complemento de Excel es que no necesita que sus libros de trabajo estén habilitados para macros, y puede guardarlos como xlsx.

Utilice Python Script para insertar códigos R en Microsoft Excel

import tempfile
import segno
import xlwings as xw
# Update this with the name of your workbook
book = xw.Book('qr.xlsx')
sheet = xw.sheets[0]
# Update this with the starting cell of your URLs
start_cell = sheet['A1']
urls = start_cell.options(expand='down', ndim=1).value
# Loop through each URL and generate the QR code
for ix, url in enumerate(urls):
    # Generate the QR code
    qr = segno.make(url)
    with tempfile.TemporaryDirectory() as td:
        # Save the QR code as a temporary svg file. If you are on macOS, use pdf
        # instead and if you don't have Microsoft 365, you may have to use png
        filepath = f'{td}/qr.svg'
        qr.save(filepath, scale=5, border=0, finder_dark='#15a43a')
        # Insert the QR code to the right of the URL
        destination_cell = start_cell.offset(row_offset=ix, column_offset=1)
        sheet.pictures.add(filepath,
                           left=destination_cell.left,
                           top=destination_cell.top)

Funciones definidas por el usuario (UDF) en Excel usando Python

La biblioteca Xlwings brinda a los desarrolladores la capacidad de escribir funciones definidas por el usuario (UDF) dentro del formato de archivo de Microsoft Excel mediante programación. Actualmente, las UDF solo están disponibles en Windows. La API permite usar funciones simples, número de dimensiones de matriz, fórmulas de matriz dinámica, fórmulas arrya con NumPy y más.

Cómo llamar a Marcos a través de RunPython en Microsoft Excel

import xlwings as xw
@xw.sub
def my_macro():
    """Writes the name of the Workbook into Range("A1") of Sheet 1"""
    wb = xw.Book.caller()
    wb.sheets[0].range('A1').value = wb.name
 Español