LibreOffice Calc Помощник формул
Инструмент на Python для быстрого создания, тестирования и управления формулами LibreOffice Calc — с системой избранного, синхронизацией команды, многоязычностью и менеджером плагинов.
🚀 Возможности
📑 4 вкладки с более чем 60 функциями
🌐 38 языков (в том числе хинди с автоматической установкой шрифта)
⭐ Система избранного (локально и синхронизация команды через сетевой диск)
🛠 Панель администратора для избранного команды (защита паролем)
📋 Готовые к копированию формулы с подсветкой синтаксиса
✏️ Редактируемое поле вывода с отменой/повтором действий
📖 Встроенная справка и справочник функций (для каждого языка)
💾 Автоматическое сохранение (JSON, атомарная запись)
🌙 Тёмная тема
🔌 Менеджер плагинов для создания собственных плагинов формул
🔤 Поддержка RTL (справа налево) – автоматическое определение направления письма
🗄️ Резервное копирование и восстановление – сохраните все настройки и избранное с именем и паролем
⌨️ Глобальное сочетание клавиш Ctrl+F12 для сворачивания/восстановления окна
🔍 Валидатор JSON – автоматическая проверка и исправление languages.json и formula_explanations.json
🖥️ Использование
1. Ввод данных
Диапазон ячеек (например, A1:A10)
Ячейка 1 / Ячейка 2 (например, A1, B1)
Необязательный параметр (например, текст или индекс)
Выбор режима абсолютной ссылки: A1, $A1, A$1, $A$1
2. Выбор функции Выберите вкладку и нажмите на функцию — формула будет сгенерирована мгновенно.
3. Настройка формулы Сгенерированную формулу можно редактировать прямо в поле вывода.
4. Копирование Перенос в буфер обмена одним щелчком (включая цвета синтаксиса).
5. Использование избранного
⭐ Сохранить → сохранить текущую формулу (Ctrl+S)
📂 Загрузить → повторно использовать формулу
❌ Удалить → клавиша Delete или кнопка
🕐 История → недавно использованные формулы
📊 Обзор вкладок
Вкладка 1 – Основные функции + - * / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT
Вкладка 2 – Расширенные функции IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE
Вкладка 3 – Дата и текст TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM
Вкладка 4 – Поиск и округление VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND
📖 Пояснения к формулам из документации LibreOffice
Файл formula_explanations.json заполняется напрямую из официальной документации LibreOffice Calc (https://help.libreoffice.org).
Источник данных и обновление
Описания, информация о синтаксисе и примеры берутся с официального сайта справки LibreOffice
Поддерживаемые языки зависят от доступных переводов на сайте
Файл содержит для каждой функции: название, синтаксис, описание, пример и категорию
Дополнения или исправления можно вносить вручную (см. Валидатор JSON)
Структура formula_explanations.json
`json
{
"SUM": {
"ru": {
"syntax": "SUM(Число1; Число2; ...)",
"description": "Суммирует все числа в диапазоне ячеек.",
"example": "=SUM(A1:A10)"
},
"en": {
"syntax": "SUM(Number1; Number2; ...)",
"description": "Adds all numbers in a cell range.",
"example": "=SUM(A1:A10)"
}
}
}
`
| Поле | Обязательное | Описание |
|------|-------------|---------|
| syntax | ✅ | Синтаксис формулы с параметрами |
| description | ✅ | Краткое описание функции |
| example | ✅ | Пример использования в виде готовой формулы |
| note | ❌ | Необязательная заметка |
💡 Примечание: Если для языка нет записи, приложение автоматически переключается на английскую версию.
---
🔍 Валидатор JSON для языковых файлов
Встроенный Валидатор JSON проверяет и исправляет languages.json и formula_explanations.json на согласованность, полноту и корректность названий стран. Доступен через Настройки → 🔍 Валидатор JSON.
Что проверяется?
#### languages.json
✅ Все 38 языков присутствуют (по коду ISO 639-1)
✅ Корректные названия стран и языков (например, "ru" → "Русский")
✅ Нет дублирующихся кодов языков
✅ Обязательные поля присутствуют: name, native_name, flag, rtl
✅ Флаг RTL установлен правильно (Арабский, Иврит, Персидский, Урду → "rtl": true)
#### formula_explanations.json
✅ Все функции из 4 вкладок зарегистрированы
✅ Обязательные поля присутствуют: syntax, description, example
✅ Нет пустых полей ("" или null)
✅ Коды языков соответствуют languages.json
Функции исправления
| Тип ошибки | Автоматическое исправление |
|-----------|--------------------------|
| Неверное название страны | Заменяется правильным по стандарту ISO |
| Отсутствующая запись языка | Заполняется английским резервным вариантом |
| Пустое обязательное поле | Помечается как "[MISSING]" для ручной проверки |
| Дублирующаяся запись | Дубликаты удаляются, более полная запись сохраняется |
| Неверный флаг RTL | Автоматически исправляется на основе известных RTL-кодов |
Как использовать
1. Откройте Настройки → 🔍 Валидатор JSON
2. Выберите файл: languages.json или formula_explanations.json (или оба)
3. 🔎 Проверить – показывает все найденные проблемы
4. 🛠 Исправить автоматически – решает все автоматически исправляемые ошибки
5. 💾 Сохранить – атомарно записывает исправленный файл
6. 📋 Экспортировать отчёт (необязательно) – сохраняет текстовый файл со всеми результатами
⚠️ Примечание: Перед каждым автоматическим исправлением создаётся резервная копия оригинального файла (languages.json.bak / formula_explanations.json.bak).
⭐ Система избранного
Сохранение и повторное использование собственных формул
Разделение между личным избранным и избранным команды
Избранное команды защищено от записи (редактирование доступно только администратору)
Предотвращение дублирующихся записей
Произвольная сортировка личного избранного
Синхронизация через сетевой диск (настраивается по желанию)
Синхронизация команды
В разделе Настройки → 🌐 Сетевой путь можно указать сетевой диск (например, \\\\Сервер\\Общий\\формулы).
При запуске: избранное из сети сохраняется локально (резервная копия для работы офлайн)
При сохранении: личные формулы записываются в сеть, формулы команды остаются без изменений
🛠 Панель администратора
Доступна через кнопку 🛠. При первом нажатии задаётся пароль (PBKDF2-SHA256, хранится только хеш).
Добавление, редактирование и удаление формул команды
Смена пароля
Запись изменений непосредственно на сетевой диск
🔌 Менеджер плагинов
Менеджер плагинов (plugin_manager.py) — самостоятельный инструмент для создания и управления собственными плагинами формул для Calc2. Он находится в той же папке, что и Calc2.py, и запускается кнопкой 🔌 в Calc2.py:
Функции
Создать новый плагин — пошаговый мастер (название, формулы, переводы, сводка)
Добавить формулы — добавление формул в существующий плагин
Редактировать переводы — перевод названий формул на все 38 языков
Открыть папку плагинов — напрямую в проводнике файлов
Удалить плагин — с запросом подтверждения
Структура плагина
Каждый плагин располагается как подпапка в plugins/ и состоит из двух файлов:
`
plugins/
мой_плагин/
plugin.json ← метаданные (название, версия, автор, описание)
formulas.json ← формулы с переводами
`
Пример plugin.json:
`
{
"id": "мой_плагин",
"enabled": true,
"version": "1.0",
"author": "Ваше имя",
"icon": "💰",
"name": { "en": "Finance Formulas", "ru": "Финансовые формулы" },
"description": { "en": "Useful formulas for financial calculations." }
}
`
Пример formulas.json:
`
[
{
"formula": "=SUM(A1:A10)",
"name": { "en": "Sum of range", "ru": "Сумма диапазона" },
"description": { "en": "Adds all values in A1:A10." },
"category": { "en": "Basic", "ru": "Основные" }
}
]
`
Важное примечание (⚠️ Important Notice)
В менеджере плагинов есть кнопка ⚠️ Important Notice. При нажатии открывается окно со всеми правилами корректного создания плагинов на английском языке. Та же информация содержится в файле IMPORTANT_NOTICE.md.
🌐 Многоязычность
Доступно 38 языков, переключаемых прямо в приложении.
Новые языки можно добавить через кнопку 🌍 с помощью мастера языков.
Примечание о хинди (हिंदी): При первом переключении на хинди шрифт *Noto Sans Devanagari* будет однократно установлен на уровне системы. При этом Windows запросит права администратора.
🔤 Поддержка RTL (справа налево)
Языки с письмом справа налево определяются автоматически, и весь интерфейс зеркалируется:
Арабский (عربي) – автоматическое определение RTL
Иврит (עברית) – автоматическое определение RTL
Персидский / Фарси (فارسی) – автоматическое определение RTL
Урду (اردو) – автоматическое определение RTL
Что меняется в режиме RTL: Весь макет интерфейса зеркалируется, поля ввода используют выравнивание RTL, шрифт автоматически меняется на совместимый с RTL (например, *Noto Sans Arabic*, *Noto Sans Hebrew*).
💡 Примечание: Сгенерированные формулы LibreOffice всегда остаются в синтаксисе LTR — меняется только направление интерфейса.
🗄️ Резервное копирование и восстановление
Создание резервной копии
Через Настройки → 🗄️ Создать резервную копию:
1. Имя – произвольное название (например, Резервная_Май_2025)
2. Пароль – копия шифруется AES; без пароля восстановление невозможно
3. Место сохранения – локально или на сетевом диске
4. Нажмите 💾 Создать резервную копию – создаётся файл .calc2backup
Содержимое: Всё избранное, настройки, избранное команды (необязательно), установленные плагины.
Восстановление резервной копии
Через Настройки → 📂 Восстановить резервную копию:
1. Выберите файл (.calc2backup)
2. Введите пароль
3. Выберите область: только избранное / только настройки / всё
4. Нажмите 🔄 Восстановить
⚠️ При восстановлении существующие данные перезаписываются. Перед восстановлением предлагается автоматическое резервное копирование текущих данных.
💡 Советы
$A$1 → абсолютная ссылка (выпадающий список рядом с полями ячеек)
Ctrl+S → сохранить формулу в избранное
Ctrl+C → копировать формулу (вне полей ввода)
Ctrl+Z / Ctrl+Y → отменить / повторить
Ctrl+F12 → свернуть / восстановить окно (работает даже когда Calc2 свёрнут)
Клавиша Delete в списке избранного → удалить запись
Формулы можно редактировать прямо в поле вывода после генерации
📁 Структура проекта
`
Calc2.py ← основная программа
plugin_manager.py ← менеджер плагинов
IMPORTANT_NOTICE.md ← примечания по созданию плагинов
data/
README_de.md / README_en.md / ... ← справка для каждого языка
REFERENZ_de.md / REFERENZ_en.md / ... ← справочник функций для каждого языка
language/
languages.json ← переводы интерфейса (38 языков)
formula_explanations.json
services/
language_tool.py ← мастер: добавление нового языка
settings_service.py
auth_service.py
favorites_service.py
network_sync.py
install_service.py
backup_service.py ← резервное копирование и восстановление
json_validator.py ← проверка и исправление languages.json / formula_explanations.json
plugins/ ← папка плагинов (создаётся автоматически)
мой_плагин/
plugin.json
formulas.json
fonts/
NotoSansDevanagari-Regular.ttf ← шрифт хинди
NotoSansArabic-Regular.ttf ← арабский шрифт (RTL)
NotoSansHebrew-Regular.ttf ← иврит шрифт (RTL)
python/ ← встроенный Python
python.exe
...
settings.json ← создаётся автоматически
избранное.json ← локальное избранное (создаётся автоматически)
`
🧠 Технические особенности
Атомарная запись файлов → предотвращает повреждение файлов при сохранении
Сервисная архитектура → логика и интерфейс строго разделены
Автоматическая миграция → старые форматы избранного распознаются и конвертируются
Надёжная обработка ошибок → повреждённые файлы не приводят к сбою программы
Подсветка синтаксиса → формулы отображаются в цвете
Тёмная тема → полная поддержка
Система плагинов → Calc2 можно расширять собственными плагинами формул
Движок RTL → автоматическое определение RTL-языков, полное зеркалирование интерфейса с подходящими шрифтами
Резервное копирование и восстановление → резервные копии с шифрованием AES, именем и паролем, выборочное восстановление
Валидатор JSON → автоматическая проверка и исправление languages.json и formula_explanations.json включая названия стран и обязательные поля
Источник LibreOffice → formula_explanations.json заполняется из официальной документации LibreOffice Calc (https://help.libreoffice.org)
Глобальное сочетание клавиш → Ctrl+F12 работает на уровне системы через библиотеку keyboard (фоновый поток)
Лицензия
Свободно для личного и коммерческого использования.