LibreOffice Calc Помощник за формули


Python инструмент за бързо създаване, тестване и управление на формули в LibreOffice Calc – с система за любими, екипна синхронизация, многоезичност и мениджър на плъгини.

🚀 Функции


  • 📑 4 раздела с над 60 функции

  • 🌐 38 езика (вкл. хинди с автоматично инсталиране на шрифт)

  • ⭐ Система за любими (локално и екипна синхронизация чрез мрежово устройство)

  • 🛠 Административен панел за екипни любими (защитен с парола)

  • 📋 Готови за поставяне формули със синтактично оцветяване

  • ✏️ Редактируемо изходно поле с undo/redo

  • 📖 Вградена помощ и справочник с функции (за всеки език)

  • 💾 Автоматично запазване (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": {
    "bg": {
    "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 код)
  • ✅ Правилни имена на страни и езици (напр. "bg""Български")
  • ✅ Няма дублиращи се езикови кодове
  • ✅ Присъстват задължителните полета: 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).

    ⭐ Система за любими


  • Запазвайте и повторно използвайте собствени формули

  • Ясно разграничение между лични и екипни любими

  • Екипните любими са само за четене (само администраторите могат да ги редактират)

  • Предотвратяват се дублиращи се записи

  • Свободно сортиране на личните любими

  • Синхронизация чрез мрежово устройство (по избор)

  • Екипна синхронизация


    Отидете в Настройки → 🌐 Мрежов път, за да въведете път до мрежово устройство (напр. \\\\Server\\Share\\formulas).

  • При стартиране: мрежовите любими се кешират локално (резервен офлайн режим)

  • При запазване: личните формули се записват в мрежата; екипните формули остават непроменени

  • 🛠 Административен панел


    Достъпен чрез бутона 🛠. При първото кликване се задава парола (PBKDF2-SHA256, съхранява се само хешът).

  • Добавяне, редактиране и изтриване на екипни формули

  • Промяна на паролата

  • Директен запис на промените в мрежовото устройство

  • 🔌 Мениджър на плъгини


    Мениджърът на плъгини (plugin_manager.py) е самостоятелен инструмент за създаване и управление на собствени плъгини с формули за Calc2. Намира се в същата папка като Calc2.py и се стартира от бутона 🔌 в Calc2.py.

    Функции


  • Създаване на нов плъгин – съветник стъпка по стъпка (име, формули, преводи, резюме)

  • Добавяне на формули – добавяне на формули към съществуващ плъгин

  • Редактиране на преводи – превод на наименованията на формули на всички 38 езика

  • Отваряне на папката на плъгина – директно в файловия мениджър

  • Изтриване на плъгин – с потвърждение

  • Структура на плъгина


    Всеки плъгин се намира като подпапка в plugins/ и се състои от два файла:

    `
    plugins/
    my_plugin/
    plugin.json ← метаданни (име, версия, автор, описание)
    formulas.json ← формули с преводи
    `

    Пример plugin.json:

    `json
    {
    "id": "my_plugin",
    "enabled": true,
    "version": "1.0",
    "author": "Вашето име",
    "icon": "💰",
    "name": { "en": "Finance Formulas", "bg": "Финансови формули" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    Пример formulas.json:

    `json
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "bg": "Сума на диапазон" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "bg": "Основни" }
    }
    ]
    `

    Важна бележка (⚠️)


    Мениджърът на плъгини разполага с бутон ⚠️ Important Notice. Кликването върху него отваря прозорец с всички правила за правилно създаване на плъгини (на английски). Същата информация е налична и в IMPORTANT_NOTICE.md.

    🌐 Многоезичност


    38 езика са налични, превключваеми директно в приложението.
    Нови езици могат да се добавят чрез бутона 🌍, използвайки съветника за езици.

    Бележка за хинди (हिंदी): При първото превключване на хинди шрифтът *Noto Sans Devanagari* се инсталира системно еднократно. Windows ще поиска администраторски права.

    🔤 RTL поддръжка (отдясно наляво)


    Езиците с писане отдясно наляво се разпознават автоматично и целият интерфейс се огледава:

  • Арабски (عربي) – автоматично разпознаване на RTL
  • Иврит (עברית) – автоматично разпознаване на RTL
  • Персийски / Фарси (فارسی) – автоматично разпознаване на RTL
  • Урду (اردو) – автоматично разпознаване на RTL

  • Какво се променя при RTL: Цялото UI оформление се огледава, полетата за въвеждане използват RTL подравняване, шрифтът автоматично се сменя с RTL-съвместим.

    💡 Забележка: Генерираните формули на LibreOffice винаги остават в LTR синтаксис.


    🗄️ Архивиране и възстановяване


    Създаване на архив


    Чрез Настройки → 🗄️ Създай архив:

    1. Име – въведете произволно наименование (напр. Backup_Mai_2025)
    2. Парола – архивът се криптира с AES; без паролата няма възстановяване
    3. Местоположение – локално или на мрежово устройство
    4. Кликнете 💾 Създай архив – създава се .calc2backup файл

    Съдържание: Всички любими, настройки, екипни любими (по избор), инсталирани плъгини.

    Възстановяване


    Чрез Настройки → 📂 Възстанови архив:

    1. Изберете архивен файл (.calc2backup)
    2. Въведете паролата
    3. Изберете обхват: само любими / само настройки / всичко
    4. Кликнете 🔄 Възстанови

    ⚠️ При възстановяване съществуващите данни се заменят. Предлага се автоматичен архив преди възстановяването.


    💡 Съвети


  • $A$1 → абсолютна референция (падащо меню до полетата за клетки)

  • Ctrl+S → запазване на формулата в любими

  • Ctrl+C → копиране на формулата (когато фокусът не е в поле за въвеждане)

  • Ctrl+Z / Ctrl+Y → undo / redo

  • 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 ← UI преводи (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/ ← папка с плъгини (създава се автоматично)
    my_plugin/
    plugin.json
    formulas.json
    fonts/
    NotoSansDevanagari-Regular.ttf ← шрифт за хинди
    NotoSansArabic-Regular.ttf ← арабски шрифт (RTL)
    NotoSansHebrew-Regular.ttf ← иврит шрифт (RTL)
    python/ ← вграден Python
    python.exe
    ...
    settings.json ← създава се автоматично
    favoriten.json ← локални любими (създава се автоматично)
    `

    🧠 Технически акценти


  • Атомарен запис на файлове → предотвратява повредени файлове при запазване

  • Сервизна архитектура → логиката и UI са строго разделени

  • Автоматична миграция → стари формати на любими се разпознават и конвертират

  • Стабилна обработка на грешки → повредените файлове не предизвикват сривове

  • Синтактично оцветяване → формулите се показват в цвят

  • Тъмен режим → напълно поддържан

  • Система за плъгини → Calc2 е разширяем с персонализирани плъгини с формули

  • RTL модул → автоматично разпознаване на RTL езици, пълно огледало на UI с подходящи шрифтове

  • Архивиране и възстановяване → AES-криптирани архиви с име и парола, селективно възстановяване

  • JSON валидатор → автоматична проверка и корекция на languages.json и formula_explanations.json вкл. имена на страни и задължителни полета

  • Източник LibreOfficeformula_explanations.json се попълва от официалната документация на LibreOffice Calc (https://help.libreoffice.org)

  • Глобален клавишен пряк пътCtrl+F12 работи системно чрез библиотеката keyboard (фонов поток)

  • Лиценз


    Свободен за лична и търговска употреба.