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 включно з назвами країн і обов'язковими полями

  • Джерело LibreOfficeformula_explanations.json заповнюється з офіційної документації LibreOffice Calc (https://help.libreoffice.org)

  • Глобальне поєднання клавішCtrl+F12 працює на рівні системи через бібліотеку keyboard (фоновий потік)

  • Ліцензія


    Вільне використання в особистих та комерційних цілях.