GaleFuncs - расширение для вычислений в Calc

Автор stormray, 19 августа 2026, 13:12

0 Пользователи и 2 гостей просматривают эту тему.

stormray

Здравствуйте!

Представляю свою разработку - расширение GaleFuncs для LibreOffice Calc. Расширение позволяет вычислять математические выражения и физические формулы с учетом размерностей используя встроенный скриптовый язык. Основные возможности:

- скриптовый язык программирования с поддержкой условий, циклов и пользовательских функций;
- вычисления с комплексными числами и интервалами;
- работа с физическими единицами измерений: контроль размерностей во время вычислений, перевод между системами единиц, автоматическое определение размерности результата;

Математические выражения и небольшие скрипты вводятся прямо в ячейках Calc — использование макросов не требуется.

Загрузить GaleFuncs можно с сайта расширений LibreOffice или из репозитория на GitHub: https://github.com/runnfla/GaleFuncs
Там же, на GitHub-е есть хелп—файлы на русском и английском с описанием синтаксиса языка, примеры.

Расширение поддерживается в LibreOffice x86-64 под Windows и Linux, также доступна версия для Excel.

Если интересно, пожалуйста, задавайте вопросы, оставляйте свои комментарии и пожелания здесь или в Discussions на GitHub.

economist

Классное расширение, +⭐, спасибо что поделились! Сам давно использую самописную либу на Python с модулями pint (инженерные размерности и СИ), sympy для символьной арифметики ну и простой eval() для расчетов, с модификацией __repr__() для перехвата вывода. Правда я снюхался с технологами и возник сильный перекос в металлургию, так что реп до сих пор приватный.

Что понравилось в вашем решении: легкий, ставится, работает, не отягощено фичами.

Чего не хватило: явно мало одного примера, нет "приземленных RU-сценариев для современных студентов" (это самый массовый будущий электорат, паства и поклонницы :) Нет ссылки на русское описание в README.md. Пример может наглядно показать что формулу, скажем, V=PI*R2*H можно один раз написать в Calc/Excel и получить и формулу, и готовый рассчитанный объем цилиндра в нужной размерности СИ, и обновить по ГОСТу формулу/значение в их несравненном курсаче/дипломе/диссере через однократно вставленную на первом курсе DDE-ссылку автоматически, по нажатию F9 во Writer (кстати, от версии к версии F9 ломается).

Вот прям так и выложить парой файлов *.ods + *,odt Потому что не все люди способны оценить мощь технологии, не видя конвейер целиком. DDE xlsx + odt тоже работает, но саму связь надо создавать, открыв xlsx в Calc, а не в Excel. Иначе могут быть фокусы с обновлением.   

Расскажите про выбор стека, интересно.
Пить не буду коньяка - читану Питоньяка!

stormray

economist, спасибо за интерес к GaleFuncs!
Там, собственно, все просто — UDF на Python (VBA в Excel версии) вызывает скрипт-движок в виде .dll/.so. Скрипт-движок написан на FreePascal (я его более-менее хорошо знаю, и он мне нравится + кроссплатформенность бонусом). GaleFuncs – это, так сказать, демо и реклама для моего пет-проекта RunFormula.
Что касается примеров — да, по мере сил и возможности буду что-то делать. Проблема в том, что темы для них приходится «высасывать из пальца». Вот сделал пока один для скриншота и другой для решения задачки, где без цикла не обойтись.

economist

По поводу примеров, идейка. Бухи, Финики, Экономисты, Аудиторы, Аналитики, Юристы и 1С-кодеры - в сумме самая многочисленная ватага студентов вузов. За 25 лет их выпущено почти 40 млн. чел. 70% из них не стали работать по специальности в течение 1-го года после окончания вуза (зря потраченные деньги бюджета и родителей). Потери лет времени. И еще беда в том, сколько аспирантов и преподов наварится на контрольных/курсачах/дипломниках/диссерах, плодя взяточничество и неучей вокруг. К чему я.

КвалифРаботы озвученных специальностей массовы, требуют простых расчетов, но с большой долей повторяемости. Большая часть - пресловутый "анализ хоздеятельности" некоего юрлица. Формулы там простые, типа Ктл = ТА / ТО (коэфф. текущий ликвидности по балансу равен текущим активам (Разд2), деленным на долги к погашению в ближ. 12 мес., Разд5) И циклы нужны по квартальным периодам за много лет. И такой пример, кмк, зайдет студентам массово. К тому же большинство считает коэффициенты в листах Excel, но оформляют так хаотично, что самим стыдно смотреть. Оттого перенос значений в Word/Writer идет вручную (не DDE/Полями или из БД, при проф. подходе). Тратят студенты на многократный пересчет/перенос треть времени, начиная с первого курса, а значит такой пример тронет их за живое в любой стадии зрелости.
Пить не буду коньяка - читану Питоньяка!

stormray

еconomist, спасибо за идеи! Буду иметь в виду. Я сейчас планирую посмотреть в сторону обсчета лабораторных работ, построения графиков с погрешностями.