Introdução a XLWings#

Para manipulação de um ficheiro simples de excel podemos fazê-lo através de um ficheiro .py ou um ficheiro .ipynb (jupyter notebook). No caso de optarem por um ficheiro .py vamos ter de o correr no terminal.

import xlwings as xw
import pandas as pd

# Abrir o ficheiro excel
wb = xw.Book('test_xlwings.xlsx')

# Aceder a uma folha do excel
# No nosso caso por defeito chama-se "Folha1"
sheet = wb.sheets['Folha1']

Agora que o nosso excel está aberto vamos começar a fazer alterações. Vamos incluir um 2 na célula A1 e na célula B1.

sheet.range("A1").value = 2
sheet.range("B1").value = 2

Posteriormente, no excel, criei a fórmula de somar os valores das duas células na célula D1.

Testem alterar programaticamente um dos valores e a célula D1 também altera. Podemos ver que há assim um híbrido entre o trabalho em excel directamente e através do XLWings.

Desta forma, podemos ter o nosso excel “normal” mas actualizarmos alguns valores programaticamente, obtidos por uma API ou através de webscraping, de forma a actualizar o nosso excel.

Mas também podemos fazer as fórmulas do excel directamente via XLWings. Vamos colocar um novo valor na célula D2, fazendo a mesma soma de A! e B1 através do XLWings!

sheet.range("D2").formula = "=SUM(A1:B1)"

Por fim vamos gravar e fechar o nosso excel.

wb.save('test_xlwings.xlsx')
wb.close()

Para finalizar apenas queria acrescentar que não só podemos acrescentar valores mas também dataframes sem qualquer tipo de problemas. Para além disso a mina recomendação no vosso workflow é terem uma página do excel onde colocam os vossos dados manipulados através do XLWings e as vossas outras folhas em separado (Devem ir buscar os dados indirectamente em vez de se manipular directamente as folhas “normais”).