Como integrar perfeitamente o Python ao Excel usando PyXLL

Como integrar perfeitamente o Python ao Excel usando PyXLL
Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

PyXLL é uma ferramenta que preenche a lacuna entre o Microsoft Excel e o Python. Ele permite integrar perfeitamente o código e a funcionalidade Python em planilhas do Excel. Com o PyXLL, o Excel se torna uma plataforma para aproveitar as bibliotecas e os recursos do Python.





PyXLL serve como um suplemento do Excel. Você pode usá-lo para escrever funções e macros Python diretamente no ambiente VBA do Excel. PyXLL então atua como intérprete e executa o código nas células do Excel, abrindo muitas possibilidades. Algumas delas incluem automatização de tarefas complexas, análise avançada de dados e visualização de dados.





Uma visão geral do PyXLL

PyXLL funciona executando um interpretador Python dentro do processo do Excel. Isso dá ao seu código Python, executado em PyXLL, acesso direto aos dados e objetos do Excel. A ferramenta é escrita em C++ e usa a mesma tecnologia subjacente do Excel. Isso significa que o código Python executado em PyXLL é normalmente muito mais rápido do que Código Excel VBA .





Instalação e configuração

Para instalar o PyXLL, vá para o Site PyXLL e baixe o complemento. Certifique-se de que a versão do Python e a versão do Excel escolhidas correspondam às instaladas em seu sistema. PyXLL está disponível apenas para a versão Windows do Excel.

  Página de download do PyXLL

Quando o download for concluído, abra um prompt de comando e execute este comando:



 pip install pyxll

Você precisa tenha o Pip instalado no seu sistema para que o comando acima seja executado. Em seguida, use o pacote PyXLL para instalar o complemento PyXLL:

 pyxll install 

O instalador perguntará se você baixou o complemento. Digite sim e forneça o caminho para o arquivo zip que contém o suplemento. Em seguida, siga as instruções na tela para concluir a instalação.





Primeiros passos com PyXLL

Depois de instalar o plugin, inicie o Excel. Antes de iniciar, um prompt aparecerá solicitando que você Iniciar teste ou Comprar agora . A versão de teste expirará após trinta dias e você precisará adquirir uma licença para continuar usando o PyXLL.

  Solicitação de versão PyXLL

Clique no Iniciar teste botão. Isso iniciará o Excel com o suplemento instalado.





No Guia de exemplo PyXLL , Clique no Sobre PyXLL botão. Isso mostrará o caminho no qual você instalou o suplemento, juntamente com os caminhos para os arquivos de configuração e de log.

  PyXLL sobre prompt no Excel

O caminho que contém o arquivo de configuração é importante porque você precisará editar esse arquivo posteriormente, então anote-o.

Expondo funções Python ao Excel

Para expor uma função Python ao Excel como uma função definida pelo usuário (UDF), use o @xl_func decorador. Este decorador instrui o PyXLL a registrar a função no Excel, disponibilizando-a aos usuários.

Por exemplo, para expor um Python fibonacci() função para o Excel como uma UDF, você pode usar o @xl_func decorador da seguinte forma:

 from pyxll import xl_func 

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n - 1) + fibonacci(n - 2)

Salve este código com a extensão .py e anote o caminho da pasta na qual você salvou o arquivo.

Agora, abra o arquivo de configuração PyXLL em um editor e role para baixo até uma linha que começa com “pythonpath”. Essa configuração normalmente é uma lista de pastas nas quais o PyXLL procurará módulos Python. Adicione o caminho para a pasta que contém o código-fonte da função Fibonacci.

  Lista de pastas PyXLL pythonpath

Em seguida, role para baixo até “módulos” e adicione seu módulo. Por exemplo, se você salvou seu arquivo como fibonacci.py , adicione o nome 'fibonacci' para a lista:

  Lista de módulos do arquivo de configuração PyXLL

Isso irá expor as funções do módulo que usam o @xl_func decorador para Excel. Em seguida, volte ao Excel e, no Guia de exemplo PyXLL , Clique no Recarregar PyXLL botão para que as alterações no arquivo de configuração sejam sincronizadas. Você pode então chamar o Python Fibonacci funcionar como faria com qualquer outra fórmula do Excel.

  Funções Python no Excel

Você pode criar quantas funções precisar e expô-las ao Excel da mesma maneira.

Passando dados entre Excel e Python

PyXLL suporta o uso de bibliotecas Python externas, como Pandas. Ele permite passar dados dessas bibliotecas para Python e vice-versa. Por exemplo, você pode use Pandas para criar um dataframe aleatório e passe para o Excel. Certifique-se de que o Pandas esteja instalado em seu sistema e experimente este código:

como remover um protetor de tela
 from pyxll import xl_func 
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_dataframe(rows, columns):
   data = np.random.rand(rows, columns)
   column_names = [chr(ord('A') + x) for x in range(columns)]
   return pd.DataFrame(data, columns=column_names)

Você deve seguir o mesmo processo para expor este módulo e suas funções ao Excel. Então tente ligar para quadro_de_dados_aleatório funcione como faria com outra fórmula do Excel:

 =random_dataframe(10,5)

Você pode alterar o número de linhas e colunas conforme desejar.

  Dataframe no Excel gerado pelo Pandas através do PyXLL

Você pode passar seus dataframes predefinidos para o Excel da mesma maneira. Também é possível importar dados do Excel para o script Python usando Pandas .

Limitações do PyXLL

  • Compatibilidade com Windows e Excel: PyXLL foi projetado principalmente para Windows e funciona com Microsoft Excel no Windows. Pode ter funcionalidade limitada ou problemas de compatibilidade em plataformas não Windows, pois é otimizado para ambientes Windows.
  • Implantação: a implantação de planilhas com tecnologia PyXLL para usuários finais exige que eles tenham o Python instalado com dependências mínimas ou o tempo de execução do Python incluído na planilha. Isso significa que os usuários que desejam usar planilhas com tecnologia PyXLL precisam ter o Python instalado em suas máquinas.
  • Curva de aprendizado: O uso eficaz do PyXLL requer algum conhecimento de programação Python e familiaridade com o modelo de objetos do Excel. Os usuários que não estão familiarizados com Python ou modelo de objeto do Excel podem precisar investir tempo aprendendo esses conceitos antes de utilizar totalmente os recursos do PyXLL.
  • Custo de licença: PyXLL é um produto comercial e, dependendo do uso e dos requisitos, pode haver custos de licenciamento associados ao seu uso. O custo do uso do PyXLL depende de fatores como número de usuários, escala de implantação e acordos de licenciamento.

Você ainda deve usar funções do Excel?

Depende do que você deseja realizar. Sempre faz sentido usar funções nativas do Excel quando estiverem disponíveis. Mas, para tarefas mais complexas, que as funções integradas do Excel não conseguem realizar, PyXLL é uma excelente solução.

A biblioteca Pandas é um complemento perfeito para PyXLL com seus recursos analíticos e forte suporte para processamento de dados.