Aprenda a Integrar Python e Excel

Uma das transformações que a linguagem Python trouxe é a possibilidade de automatizar tarefas repetitivas e desgastantes facilmente, e fazer com que o profissional do Século XXI ganhe tempo e produtividade em suas atividades.

Embora existam ferramentas mais poderosas de análise de dados (incluindo bibliotecas Python como pandas), o MS Excel ainda é uma ferramenta muito utilizada no mercado pela facilidade da interface para resulução de tarefas do dia-a dia. Porém, preencher planillhas do excel manualmente pode se tornar uma tarefa exaustiva e que consome muito tempo.

Nesse tutorial, vamos te ensinar a manipular arquivos e planilhas do excel usando Python para que você não perca mais tempo preenchendo a mesma planilha todos os dias.

 

openpyxl

Para isso, utilizaremos a biblioteca openpyxl. openpyxl é uma biblioteca escrita em Python e criada para ler e escrever em arquivos do Excel 2010, ou seja, cujas extensões são xlsx/xlsm/xltx/xltm.

Nascida da falta de uma biblioteca Python para manipular arquivos Office Open XML, o openpyxl reúne os recursos que você precisa para automatizar a manipulação de suas planilhas eletrônicas.

 

Instalar openpyxl

Como primeiro passo para trabalhar com a biblioteca instale-a executando no terminal de seu sistema operacional o comando:

pip install openpyxl

 

Let’s Code

Agora que temos o openpyxl instalado em nossa máquina, criaremos um Workbook (ou pasta de trabalho) instanciando um objeto dessa classe. Esse workbook conterá todas as planilhas que criaremos e manipularemos. Podemos pensar no workbook como um arquivo do excel, pois um arquivo excel contém uma ou mais planilhas assim como as planilhas contém dados.

 

from openpyxl import Workbook
arquivo_excel = Workbook()

 

Quando instanciamos um objeto workbook, por padrão, ele contém uma planilha chamada ‘Sheet1’. Para obtermos essa planilha que inclusive, é a planilha atualmente ativa, incluiremos o comando:

 

planilha1 = arquivo_excel.active

 

Podemos alterar o nome da planilha, atribuindo o valor desejado ao atributo title :

 

planilha1.title = "Gastos"

 

Criando novas planilhas

Para criar novas planilhas em seu arquivo do Excel, adicionaremos o método create_sheet. Como parâmetro obrigatório passaremos o título da nova planilha e como parâmetro opcional a posição que queremos inserir a nova planilha:

 

planilha2 = arquivo_excel.create_sheet("Ganhos")

ou
 

planilha2 = arquivo_excel.create_sheet("Ganhos", 0)

O atributo sheetnames do Workbook guarda em uma lista os nomes das planilhas criadas exatamente na ordem em que elas estão posicionadas em seu arquivo excel. Segue abaixo os comandos para você verificar as planilhas criadas e a ordem que elas estão postas em seu arquivo:

 

print(arquivo_excel.sheetnames)

 

Adicionando Dados a Planilhas

Veremos agora duas maneiras diferentes para adicionar dados a suas planilhas:

 

1 – Atribuido valores a elementos específicos

 

planilha1['A1'] = 'Categoria'
planilha1['B1'] = 'Valor'
planilha1['A2'] = "Restaurante"
planilha1['B2'] = 45.99

 

2 – Adicionando um Grupo de Valores a última Linha Escrita

Poderíamos também preparar todos os dados em uma lista de tuplas, no qual cada tupla será uma linha da planilha e então iterar escrevendo na planilha linha a linha.
 

valores = [
    ("Categoria", "Valor"),
    ("Restaurante", 45.99),
    ("Transporte", 208.45),
    ("Viagem", 558.54)
]
for linha in valores:
    planilha1.append(linha)

 

3 – Utilizando o método cell

Utilizando o método cell, você deverá tratar a planilha como uma matriz de duas dimensões, na qual a primeira linha tem como índice o número 1 e a primeira coluna também tem um índice de número 1.

planilha1.cell(row=3, column=1, value=34.99)

 

Adicionando Fórmulas

Caso você queira adicionar fórmulas do excel a sua planilha, é só utilizar quaisquer dos métodos acima, como strings:

 

planilha['C1'] = '=SOMA(23, 5)'

 

Lendo Dados da Planilha

Podemos acessar as células de uma planilha e ler seus dados de diversas formas. Veja o exemplo a seguir:

 

# Utililizando em índices o nome das células como em um dicionário
c1 = planilha1['C1']
# Imprime o valor da célula C1
print(c1.value)
# Utilizando o método cell
a1 = planilha1.cell(column=1, row=1)
#Imprime o valor da célula a1
print(a1.value)

 

Poderíamos utilizar a estrutura de repetição for para ler linha a linha da planilha:

 

max_linha = planilha1.max_row
max_coluna = planilha1.max_column
for i in range(1, max_linha + 1):
    for j in range(1, max_coluna + 1):
        print(planilha1.cell(row=i, column=j).value, end=" - ")

 

Salvando Sua Planilha

Para salvar o arquivo que você criou basta adicionar ao seu script a seguinte linha de comando:

 

arquivo_excel.save("relatorio.xlsx")

 

Carregando uma Planilha Existente

Para usar um arquivo do excel que você já tenha em seu computador utilizaremos o seguinte comando:

 

from openpyxl import load_workbook
caminho = '/caminho/até/o/seu/arquivo.xlsx'
arquivo_excel = load_workbook(caminho)

 

Copiando os dados de uma planilha em outra

 

original = arquivo_excel.get_sheet_by_name('Gastos')
copia = arquivo_excel.copy_worksheet(copia)
arquivo_excel.save('planilha.xlsx')

 

E agora, o que eu faço com isso?

Agora que você já sabe o essencial para manipular planilhas do excel com Python, que tal criar um script que gere planilhas no excel automáticas? Você pode utilizar dados da web, usar planilhas do excel como banco de dados para aplicações simples ou automatizar relatórios semanais!

Se você quiser saber mais sobre como adicionar imagens, gráficos e muito mais dê uma olhada na documentação do pyopenxl. Lá você encontrará muitos recursos legais para explorar.

Além disso não perca os posts no Newsroom da Lets Code para mais dicas, tutoriais e notícias para você ficar por dentro de tudo o que tem de mais atual no mundo da programação.