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
Підтримувані мови залежать від доступних перекладів на сайті
Файл містить для кожної функції: назву, синтаксис, опис, приклад і категорію
Доповнення або виправлення можна вносити вручну (div. Валідатор JSON)
Структура formula_explanations.json
`json
{
"SUM": {
"uk": {
"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)
✅ Правильні назви країн і мов (наприклад, "uk" → "Українська")
✅ Немає дублюючих кодів мов
✅ Обов'язкові поля присутні: 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", "uk": "Фінансові формули" },
"description": { "en": "Useful formulas for financial calculations." }
}
`
Приклад formulas.json:
`
[
{
"formula": "=SUM(A1:A10)",
"name": { "en": "Sum of range", "uk": "Сума діапазону" },
"description": { "en": "Adds all values in A1:A10." },
"category": { "en": "Basic", "uk": "Основні" }
}
]
`
Важливе повідомлення (⚠️ 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 (фоновий потік)
Ліцензія
Вільне використання в особистих та комерційних цілях.