Использование веб-сервиса API в сочетании с EXCEL и Python

Техническая статья из области расчета конструкций и использования программ Dlubal Software

  • База знаний

Техническая статья

Эта статья была переведена Google Translator

Посмотреть исходный текст

Программы для работы с электронными таблицами, такими как MS EXCEL, очень популярны среди инженеров, поскольку позволяют легко автоматизировать вычисления и быстро выводить результаты. Поэтому сочетание MS EXCEL, используемого в качестве графического интерфейса, с веб-сервисом API Dlubal является очевидным выбором. Используя бесплатную библиотеку xlwings для Python, вы можете управлять EXCEL, а также считывать и записывать значения. Функциональность описана ниже на примере.

Подготовка

Для примера и для программирования потребуется следующее:

  • RFEM 6
  • EXCEL
  • Python
  • Dlubal RFEM_Python_Client
  • Библиотека xlwings Python
  • Редактор для написания программы

Предполагая, что RFEM 6, EXCEL и Python уже установлены, следующим шагом будет установка библиотек RFEM_Python_Client. Мы предлагаем различные обучающие видеоролики и справочные страницы с описанием установки. Следующие ссылки особенно важны для установки. Они показывают процесс установки, а также первые шаги в программировании:

В этих видеороликах также рассказывается о программных редакторах. Для данного примера используемый редактор не имеет значения. Затем необходимо установить xlwings, соответствующую информацию можно найти на сайте библиотеки:

Полный код, например, находится в RFEM_Python_Client по следующему пути:

  • RFEM_Python_Client/tree/main/Examples/SteelDesign/

Файл SteelDesignExcel.py - это программа (скрипт) Python, а файл SteelDesignExcel.xlsm - это связанный файл EXCEL.

Пример для программирования

Библиотека xlwings предлагает несколько вариантов сочетания Python и EXCEL. С одной стороны, можно управлять EXCEL из программы Python (более известной как скрипт Python), а также запускать скрипт Python из EXCEL. При запуске из EXCEL вы можете либо использовать встроенный подключаемый модуль, либо создать подпрограмму, которая затем запускает скрипт Python. Подробности показаны здесь:

В нашем примере скрипт Python запускается через встроенный плагин (см. рисунок). Есть два требования. Скрипт Python должен иметь то же имя, что и файл EXCEL, и должен включать в себя основную функцию, поскольку затем эта функция выполняется через подключаемый модуль. Вот первая часть основной функции:

        
...
# Откройте лист Excel
wb = xw.Book.caller()

# Читать исходные данные
inputSheet = wb.sheets('Inputs')

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

# Геометрические исходные данные
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
...

        
    

Если xlwings используется непосредственно из скрипта Python (не через EXCEL), сначала необходимо открыть файл:

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

        
    

Если xlwings используется вне EXCEL, соединение устанавливается с помощью следующей команды:

        
wb = xw.Book.caller()

        
    

Переменная wb включает в себя всю рабочую книгу, из которой можно извлечь отдельные рабочие листы с помощью метода листов (). В этом примере открывается рабочий лист «Входные данные», и доступ к отдельным ячейкам осуществляется с помощью квадратных скобок. Значение ячейки можно прочитать или изменить с помощью свойства 'value'. Эту имплементацию можно найти в конце примера:

        
...
# Запись результатов в выходные листы
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
...

        
    

В данном случае считывается сочетание нагрузок 7. На рисунке 2 показаны деформации стержней в EXCEL и, для сравнения, результаты RFEM 6 на рисунке 3.

Заключение

На примере видно, что после настройки всех необходимых элементов пользоваться API достаточно просто. EXCEL в основном используется в качестве графического пользовательского интерфейса, и знание Visual Basic для приложений (VBA) не требуется. Также возможно, что расчёты ведутся в EXCEL (также через VBA), а Python только импортирует или экспортирует данные посредством xlwings.

Автор

Dipl.-Ing. Thomas Günthel

Dipl.-Ing. Thomas Günthel

Поддержка заказчиков

Г-н Гюнтель осуществляет техническую поддержку пользователей Dlubal Software.

Ключевые слова

Веб-сервис Excel Python

Ссылки

Добавить комментарий...

Добавить комментарий...

  • Просмотры 3581x
  • Обновления 14. февраля 2024

Контакты

Связаться с Dlubal

У вас есть дополнительные вопросы или вам нужен совет? Свяжитесь с нами по телефону, электронной почте, в чате или на форуме, или выполните поиск по странице часто задаваемых вопросов, доступной круглосуточно и без выходных.

+49 9673 9203 0

[email protected]

Rfem 6 | Студенты | Основы расчёта стержней

Онлайн-обучение 10. апреля 2024 16:00 - 19:00 CEST

RSECTION 1 | Студенты | Основы сопротивления материалов

Онлайн-обучение 17. апреля 2024 16:00 - 17:00 CEST

Rfem 6 | Студенты | Ознакомление с МКЭ

Онлайн-обучение 24. апреля 2024 16:00 - 19:00 CEST

Rfem 6 | Студенты | Основы расчёта деревянных конструкций

Онлайн-обучение 30. апреля 2024 16:00 - 17:00 CEST

RFEM 6
Зал с арочной кровлей

Основная программа

Новое поколение программного обеспечения 3D МКЭ предназначено для расчёта стержней, поверхностей и тел.

Цена первой лицензии
4 650,00 EUR
RSECTION 1
Напряжение алюминиевого сечения

Основная программа

Автономная программа RSECTION определяет характеристики любых тонкостенных и массивных сечений.

Цена первой лицензии
1 950,00 EUR
RSTAB 9
программное обеспечение для расчета каркасов и ферм

Основная программа

Современная 3D программа для расчёта и проектирования конструкций подходит для статического и динамического расчёта балочных конструкций, а также для расчётов из железобетона, стали, древесины и других материалов.

Цена первой лицензии
3 250,00 EUR