Como executar código Python dentro do Excel

Como executar código Python dentro do Excel

Entenda nesse tutorial como executar códigos Python no Excel! Em poucas palavras, vamos criar um botão e quando você clicar em nele, um código Python será executado.

Fica ligado que vamos criar vários conteúdos legais de Excel e python 🙂

Antes de mais nada…

Esse post foi produzido ouvindo vocês! Caso vocês não tenham percebido, eu coloquei no site uma ferramenta de “poll” para saber o que vocês gostariam de ver por aqui.

Essa foi nossa enquete.

Devo dizer que isso faz parte de um desejo nosso de aumentar a interação com vocês! Gostaria de saber o que vocês acham do conteúdo e receber sugestões. Portanto… estou postando esse tutorial baseado na opinião de vocês. Espero que gostem 🙂

O que nós vamos produzir?

Nesse tutorial vamos basicamente reproduzir o que está na imagem abaixo:

Resultado final

Perceba que tenho uma tabela simples com nomes de estados brasileiros seguidos pela sua temperatura média. Esses dados são completamente fake e foram inseridos apenas para criar nosso exemplo.

O funcionamento do sistema é o seguinte… quando eu clico no botão “gerar gráfico” essa plotagem aparece na tela mostrando a visualização. Vale lembrar ainda que essa abordagem é dinâmica… isso significa que se você alterar a tabela e clicar nesse botão você terá um novo gráfico com os novos dados. Veja o exemplo:

E ai? é o que você precisava? Vamos lá então…

Passo 1 – Configurando seu ambiente

Para reproduzir esse exemplo em sua máquina é preciso configurar vários detalhezinhos que tem a ver com o seu ambiente. A realidade é que você precisa dizer ao seu Excel exatamente onde ele deve encontrar cada um dos recursos que você precisa. Sendo assim, vamos começar do início..

Instalar o Excel

Nesse passo não posso te ajudar muito, a realidade é que você precisa ter uma cópia do Excel instalada e ativa em sua máquina. É muito provável que boa parte das versões mais atuais do Excel suportem esse recurso que vamos usar.

Um ponto importante é que você precisa ativar a visão do desenvolvedor no seu Excel. Para isso clique em “arquivo>opções do excel>personalizar faixa de opções”. Você verá a seguinte tela:

Clique no check do desenvolvedor destacado e você será capaz de ver em seu excel uma nova aba:

As opções acima serão as únicas que vamos usar nesse tutorial. A primeira abre o editor de macros e a segunda insere itens de formulários como botões.

Instalar o Python

O Python pode ser instalado gratuitamente no website oficial.

Screenshot do website oficial

Clique no botão de download, siga as instruções e instale o Python na sua máquina. Depois de instalado você pode executar o seguinte comando no terminal CMD do windows:

where python

O resultado é algo assim:

Perceba que ele retorna o caminho absoluto para sua instalação do python… lembre-se disso! vai ser importante

Depois de instalado e configurado você vai precisar instalar algumas dependências… elas são o pandas e o matplotlib. Para isso apenas execute os seguintes comandos um por vez:

pip install matplotlib
pip install pandas

O pandas pode exigir que você instale a biblioteca openpyxl (é uma dependencia do pandas)… O comando para instalar é:

pip install openpyxl

Ufa! espero que esteja tudo certo… se você tiver erros nessa parte, é muito possível que seu exemplo não funcione… deixe nos comentários sua dúvida e posso tentar te ajudar a descobrir o que está errado.

Passo 02 – Criando seu gráfico no Python

A verdade é que o nosso foco nesse tutorial não é mostrar como o Python funciona, nem mesmo como geramos gráficos ou coisas assim… nosso objetivo é apenas mostrar como você pode “conectar” os códigos Python com o Excel de uma forma legal. Sendo assim, vou me limitar a dizer que eu mesmo criei um código simples em Python usando a matplotlib e pandas para gerar um gráfico de barras.

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_excel("gerarGraficoComPython.xlsm");

plt.figure(figsize=(10,6))
# adicionando o título
plt.title("Temperatura das cidades")
## adicionando alguns grids
plt.grid(True, color = "grey", linewidth = "1", linestyle = "-.")
plt.bar(df['Cidade'], df['Temperatura'],  color="k")
plt.xticks(df['Cidade'], rotation='vertical')
plt.show()

Esse código simplesmente faz a leitura da planilha e depois devolve um gráfico na sua tela com os dados. Para executar esse código precisamos criar um arquivo com a extensão “.py” e ele precisa estar na mesma pasta que você colocou a sua planilha.

Então nosso exemplo ficou assim:

Eu deixei esse código lá no Github para facilitar pra você 🙂

Passo 03 – Configurando o Excel

Agora vem a parte mais importante desse tutorial, que é conectar seu Excel com o código. Em primeiro lugar devemos clicar na opção “macros” na guia do desenvolvedor e você verá a seguinte janela:

Janela pop-up aberta quando clicamos em “macros” na guia do desenvoledor

Essa janela permiteque você crie novas macros e também edite aquelas que já existem. Todas as macros que existem ficam aparecendo nessa janela de acordo com o nome que você deu para elas. Caso você queira apenas executar uma macro, clique em “executar”.

Ao criar uma nova macro, a seguinte janela irá aparecer:

O nome “novaMacro()” é você que decide

Essa macro que está sendo criada é feita em VBA (uma linguagem buitin do excel), mas não se preocupe… não vamos fazer muita coisa nela. Você só precisa colar o seguinte código:

Dim objShell As Object
Dim PythonExePath As String, PythonScriptPath As String
ActiveWorkbook.Save
ChDir ActiveWorkbook.Path

Set objShell = VBA.CreateObject("Wscript.Shell")
    
PythonExePath = """C:\Python310\python.exe"""
PythonScriptPath = """C:\Users\Vinicius\Desktop\pyExcel\gerargrafico.py"""
    
objShell.Run PythonExePath & PythonScriptPath

Para resumir, esse código apenas indica para o Excel que ele deve executar um código Python que já foi criado no seu computador. As duas variaveis que você precisa alterar são “PythonExePath” e “PythonScriptPath”, elas respectivamente são o caminho absoluto do Python na sua máquina e o caminho do código Python criado por você (que você deseja executar).

Por fim, você deverá inserir um botão de formulário na guia do desenvolvedor (“inserir> clicar no botão”). Ao desenhar esse botão na tela, clique com o botão direito do mouse sobre ele e você verá a opção “atribuir macro”:

Ao clicar você deve selecionar a macro que você criou e clicar em “ok”

Nesse ponto, toda vez que você clicar nesse botão a macro selecionada será executada. Se tudo estiver funcionando corretamente, você já irá ver o resultado final.

Possíveis problemas

O Excel é um pouco “chato” quanto a criação de macros e a habilitação das mesmas… isso acontece porque muitos desenvolvedores no passado usavam esse recurso de forma maliciosa. Então para que você consiga executar essas macros você precisa salvar o documento em um formato específico: XLSM.

Esse formato permite executar suas macros tranquilamente.

Conclusão

Como você pode perceber esse tutorial não foi muito a fundo no que podemos fazer usando o Python em combinação com o excel. Aqui criamos um gráfico de barras simples que o próprio Excel já produz sem nenhuma dificuldade. No entanto, você deve compreender que o Python é uma ferramenta muito poderosa e possui uma infinidade de funções que podem ajudar você a automatizar tarefas.

Acesso ao código

Deixei o código que produzi dentro do github do CSM

Veja nosso Github

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e a forma com que ela pode transformar vidas!

Deixe um comentário

dezenove − 3 =