5120x
001790
2023-01-23

Utilização da API do serviço web juntamente com o EXCEL e Python

Os programas de folha de cálculo, como o EXCEL, são populares entre os engenheiros porque permitem automatizar facilmente os cálculos e fornecer resultados rapidamente. A ligação do EXCEL enquanto interface gráfica do utilizador e o Serviço web e API são, por isso, óbvios. Através da utilização da biblioteca xlwings gratuita para Python, é possível controlar o EXCEL e ler e escrever valores. A funcionalidade é descrita de seguida utilizando um exemplo.

Preparação

O seguinte é necessário para o exemplo e para a programação:

  • RFEM 6
  • EXCEL
  • Python
  • Dlubal RFEM_Python_Client
  • biblioteca Python xlwings
  • Um editor para escrever o programa

Assumindo que o RFEM 6, o EXCEL e o Python já estão instalados, o próximo passo é instalar as bibliotecas RFEM_Python_Client. Oferecemos vários vídeos de aprendizagem e páginas de ajuda que descrevem a instalação. As ligações seguintes são particularmente importantes para a instalação. Apresentam a instalação e os primeiros passos para a programação:

Os editores de programas também são discutidos nestes vídeos. Para o presente exemplo, o editor utilizado é irrelevante. Depois, tem de instalar o xlwings, pode encontrar a informação correspondente na página web da biblioteca:

O código completo, por exemplo, está localizado no RFEM_Python_Client no seguinte caminho:

  • RFEM_Python_Client/tree/main/Examples/SteelDesign/

O ficheiro SteelDesignExcel.py é o programa em Python (script) e o ficheiro SteelDesignExcel.xlsm é o ficheiro EXCEL associado.

Exemplo para programação

A biblioteca xlwings oferece várias opções para combinar Python e EXCEL. Por um lado, é possível controlar o EXCEL a partir de um programa Python (mais conhecido como script em Python) e também iniciar um script em Python a partir do EXCEL. Ao iniciar o EXCEL, pode utilizar o plug-in integrado ou criar uma sub-rotina que depois inicia o script Python. Os detalhes são apresentados aqui:

No nosso exemplo, o script Python é iniciado através do plug-in integrado (ver imagem). Existem dois requisitos. O script Python tem de ter o mesmo nome que o ficheiro EXCEL e tem de incluir uma função principal porque esta função é depois executada através do plug-in.
Aqui está a primeira parte da função principal:

...
# Abrir a folha de Excel
wb = xw.Book.caller()

# Ler entrada de dados
inputSheet = wb.sheets('Inputs')

frame_number = 6
width = 10
frame_length = 4
console_height = 3
column_height = 4
gable_height = 2

# Entradas geométricas
frame_number = int(inputSheet["G6"].value)  # number of frames
width = inputSheet["G7"].value # Width of Frame
frame_length = inputSheet["G8"].value # Frame Length
console_height = inputSheet["G9"].value # Height of Console
column_height = inputSheet["G10"].value # Height of Column
gable_height = inputSheet["G11"].value # Height of Gable
...

Se o xlwings é utilizado diretamente a partir de um script Python (não através do EXCEL), tem de ser aberto primeiro um ficheiro:

wb = xw.Book('userSheet.xlsm')

Se xlwings é utilizado fora do EXCEL, a ligação é estabelecida através do seguinte comando:

wb = xw.Book.caller()

A variável wb inclui o livro completo, do qual podem ser extraídas folhas de cálculo individuais utilizando o método Sheets(). No exemplo, a folha de cálculo "Entradas" é aberta e as células individuais são acedidas através dos parênteses retos. O valor de uma célula pode ser lido ou modificado pela propriedade 'valor'. Esta implementação pode ser encontrada no final do exemplo:

...
# Escrita de resultados nas folhas de saída
nodaldeformation["A2"].value = node_number
nodaldeformation["B2"].value = nodeSupportType
nodaldeformation["C2"].value = nodeDisp_abs
nodaldeformation["D2"].value = nodeDisp_x
nodaldeformation["E2"].value = nodeDisp_y
nodaldeformation["F2"].value = nodeDisp_z
nodaldeformation["G2"].value = nodeRotation_x
nodaldeformation["H2"].value = nodeRotation_y
nodaldeformation["I2"].value = nodeRotation_z
...

No presente caso, é lida a combinação de carga 7. A Figura 1 mostra as deformações das barras no EXCEL e, para comparação, os resultados do RFEM 6 na Figura 2.

Conclusão

O exemplo mostra que, depois de configurar todos os elementos necessários, é bastante fácil utilizar a API. O EXCEL é utilizado principalmente como uma interface gráfica com o utilizador, e não é necessário conhecimento de Visual Basic for Applications (VBA). Também é possível que os cálculos sejam realizados no EXCEL (também através de VBA) e em Python apenas importa ou exporta dados através do xlwings.


Autor

O Eng. Günthel opera na área do apoio técnico para clientes.

Ligações


;