LibreOffice Calc Asistent de Formule


Un instrument Python pentru crearea rapidă, testarea și gestionarea formulelor LibreOffice Calc – cu sistem de favorite, sincronizare de echipă, suport multilingv și manager de pluginuri.

🚀 Funcționalități


  • 📑 4 file cu peste 60 de funcții

  • 🌐 38 de limbi (inclusiv hindi cu instalare automată a fontului)

  • ⭐ Sistem de favorite (local și sincronizare de echipă prin unitate de rețea)

  • 🛠 Panou de administrare pentru favoritele echipei (protejat cu parolă)

  • 📋 Formule gata de copiat cu evidențierea sintaxei

  • ✏️ Câmp de ieșire editabil cu anulare/refacere

  • 📖 Ajutor integrat și referință de funcții (per limbă)

  • 💾 Salvare automată (JSON, scriere atomică)

  • 🌙 Mod întunecat

  • 🔌 Manager de pluginuri pentru crearea propriilor pluginuri de formule

  • 🔤 Suport RTL (de la dreapta la stânga) – detectare automată a direcției de scriere

  • 🗄️ Copie de rezervă și restaurare – salvați toate setările și favoritele cu nume și parolă

  • ⌨️ Comandă rapidă globală Ctrl+F12 pentru minimizarea/restaurarea ferestrei
  • 🔍 Validator JSON – verificare și corecție automată a languages.json și formula_explanations.json

  • 🖥️ Utilizare


    1. Introducerea datelor

  • Interval de celule (ex.: A1:A10)

  • Celula 1 / Celula 2 (ex.: A1, B1)

  • Parametru opțional (ex.: text sau index)

  • Mod de referință absolută selectabil: A1, $A1, A$1, $A$1

  • 2. Selectarea unei funcții Alegeți o filă și faceți clic pe o funcție – formula este generată imediat.

    3. Personalizarea formulei Formula generată poate fi editată direct în câmpul de ieșire.

    4. Copiere Transferați în clipboard cu un singur clic (inclusiv culorile sintaxei).

    5. Folosirea favoritelor

  • ⭐ Salvare → salvați formula curentă (Ctrl+S)

  • 📂 Încărcare → reutilizați formula

  • ❌ Ștergere → tasta Delete sau butonul

  • 🕐 Istoric → formulele utilizate recent

  • 📊 Prezentare generală a filelor


    Fila 1 – Funcții de bază + - * / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT

    Fila 2 – Funcții avansate IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE

    Fila 3 – Dată și text TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM

    Fila 4 – Căutare și rotunjire VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND


    📖 Explicații formule din documentația LibreOffice


    Fișierul formula_explanations.json este populat direct din documentația oficială LibreOffice Calc (https://help.libreoffice.org).

    Sursă de date și actualizare


  • Descrierile, informațiile de sintaxă și exemplele sunt preluate de pe site-ul oficial de ajutor LibreOffice
  • Limbile acceptate depind de traducerile disponibile pe site
  • Fișierul conține pentru fiecare funcție: nume, sintaxă, descriere, exemplu și categorie
  • Completările sau corecțiile pot fi făcute manual (consultați Validator JSON)

  • Structura formula_explanations.json


    `json
    {
    "SUM": {
    "ro": {
    "syntax": "SUM(Număr1; Număr2; ...)",
    "description": "Adună toate numerele dintr-un interval de celule.",
    "example": "=SUM(A1:A10)"
    },
    "en": {
    "syntax": "SUM(Number1; Number2; ...)",
    "description": "Adds all numbers in a cell range.",
    "example": "=SUM(A1:A10)"
    }
    }
    }
    `

    | Câmp | Obligatoriu | Descriere |
    |------|------------|-----------|
    | syntax | ✅ | Sintaxa formulei cu parametri |
    | description | ✅ | Descriere scurtă a funcției |
    | example | ✅ | Exemplu de utilizare ca formulă gata pregătită |
    | note | ❌ | Notă opțională |

    💡 Notă: Dacă nu există o intrare pentru o limbă, aplicația revine automat la versiunea în engleză.

    ---

    🔍 Validator JSON pentru fișierele de limbă


    Validatorul JSON integrat verifică și corectează languages.json și formula_explanations.json pentru consistență, completitudine și denumiri corecte ale țărilor. Accesibil prin Setări → 🔍 Validator JSON.

    Ce se verifică?


    #### languages.json

  • ✅ Toate cele 38 de limbi sunt prezente (după codul ISO 639-1)
  • Denumiri corecte ale țărilor și limbilor (ex.: "ro""Română")
  • ✅ Fără coduri de limbă duplicate
  • ✅ Câmpuri obligatorii prezente: name, native_name, flag, rtl
  • ✅ Fanion RTL setat corect (Arabă, Ebraică, Persană, Urdu → "rtl": true)

  • #### formula_explanations.json

  • ✅ Toate funcțiile din cele 4 file înregistrate
  • ✅ Câmpuri obligatorii prezente: syntax, description, example
  • ✅ Fără câmpuri goale ("" sau null)
  • ✅ Codurile de limbă corespund cu languages.json

  • Funcții de corecție


    | Tip de eroare | Corecție automată |
    |-------------|------------------|
    | Denumire incorectă a țării | Înlocuită cu denumirea corectă conform ISO |
    | Intrare limbă lipsă | Completată cu versiunea de rezervă în engleză |
    | Câmp obligatoriu gol | Marcat ca "[MISSING]" pentru revizuire manuală |
    | Intrare duplicată | Duplicatele eliminate, intrarea mai completă păstrată |
    | Fanion RTL incorect | Corectat automat pe baza codurilor RTL cunoscute |

    Cum se utilizează


    1. Deschide Setări → 🔍 Validator JSON
    2. Selectează fișierul: languages.json sau formula_explanations.json (sau ambele)
    3. 🔎 Verificare – afișează toate problemele găsite
    4. 🛠 Corecție automată – rezolvă toate erorile corectabile automat
    5. 💾 Salvare – scrie atomic fișierul corectat
    6. 📋 Export raport (opțional) – salvează un fișier text cu toate constatările

    ⚠️ Notă: Înainte de fiecare corecție automată se creează o copie de siguranță a fișierului original (languages.json.bak / formula_explanations.json.bak).

    ⭐ Sistemul de favorite


  • Salvarea și reutilizarea propriilor formule

  • Separarea între favoritele personale și cele ale echipei

  • Favoritele echipei sunt protejate la scriere (doar administratorul le poate edita)

  • Intrările duplicate sunt prevenite

  • Sortare liberă a favoritelor personale

  • Sincronizare prin unitate de rețea (configurabil opțional)

  • Sincronizarea de echipă


    În Setări → 🌐 Cale de rețea se poate introduce o unitate de rețea (ex.: \\\\Server\\Partajat\\formule).

  • La pornire: favoritele de rețea sunt salvate local (copie de rezervă offline)

  • La salvare: formulele proprii sunt scrise în rețea, formulele echipei rămân nemodificate

  • 🛠 Panoul de administrare


    Accesibil prin butonul 🛠. La primul clic se setează o parolă (PBKDF2-SHA256, se salvează doar hash-ul).

  • Adăugarea, editarea și ștergerea formulelor de echipă

  • Schimbarea parolei

  • Scrierea modificărilor direct pe unitatea de rețea

  • 🔌 Managerul de pluginuri


    Managerul de pluginuri (plugin_manager.py) este un instrument independent pentru crearea și gestionarea propriilor pluginuri de formule pentru Calc2. Se află în același folder ca Calc2.py și este pornit prin butonul 🔌 din Calc2.py:

    Funcții


  • Crearea unui plugin nou – expert pas cu pas (nume, formule, traduceri, rezumat)

  • Adăugarea de formule – adăugarea formulelor la un plugin existent

  • Editarea traducerilor – traducerea numelor de formule în toate cele 38 de limbi

  • Deschiderea folderului de pluginuri – direct în exploratorul de fișiere

  • Ștergerea unui plugin – cu confirmare de siguranță

  • Structura pluginului


    Fiecare plugin se află ca subdosar în plugins/ și este alcătuit din două fișiere:

    `
    plugins/
    pluginul_meu/
    plugin.json ← metadate (nume, versiune, autor, descriere)
    formulas.json ← formule cu traduceri
    `

    Exemplu plugin.json:

    `
    {
    "id": "pluginul_meu",
    "enabled": true,
    "version": "1.0",
    "author": "Numele dvs.",
    "icon": "💰",
    "name": { "en": "Finance Formulas", "ro": "Formule financiare" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    Exemplu formulas.json:

    `
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "ro": "Suma intervalului" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "ro": "De bază" }
    }
    ]
    `

    Notă importantă (⚠️ Important Notice)


    În managerul de pluginuri există butonul ⚠️ Important Notice. Un clic deschide o fereastră cu toate regulile pentru crearea corectă a pluginurilor în limba engleză. Aceleași informații se găsesc și în IMPORTANT_NOTICE.md.

    🌐 Suport multilingv


    38 de limbi disponibile, comutabile direct în aplicație.
    Limbile noi pot fi adăugate prin butonul 🌍 cu Expertul de limbi.

    Notă privind hindi (हिंदी): La prima comutare la hindi, fontul *Noto Sans Devanagari* este instalat o singură dată la nivel de sistem. Windows va solicita drepturi de administrator în acel moment.

    🔤 Suport RTL (de la dreapta la stânga)


    Limbile cu scriere de la dreapta la stânga sunt detectate automat și întreaga interfață este oglindită:

  • Arabă (عربي) – detectare RTL automată
  • Ebraică (עברית) – detectare RTL automată
  • Persană / Farsi (فارسی) – detectare RTL automată
  • Urdu (اردو) – detectare RTL automată

  • Ce se schimbă în modul RTL: Întregul aspect al interfeței este oglindit, câmpurile de introducere folosesc alinierea RTL, fontul se schimbă automat cu unul compatibil RTL (ex.: *Noto Sans Arabic*, *Noto Sans Hebrew*).

    💡 Notă: Formulele LibreOffice generate rămân întotdeauna în sintaxă LTR – doar interfața utilizatorului își schimbă direcția.


    🗄️ Copie de rezervă și restaurare


    Crearea unei copii de rezervă


    Prin Setări → 🗄️ Creare copie de rezervă:

    1. Nume – etichetă liberă (ex.: Backup_Mai_2025)
    2. Parolă – copia este criptată AES; fără ea restaurarea este imposibilă
    3. Locație salvare – local sau pe o unitate de rețea
    4. Faceți clic pe 💾 Creare copie de rezervă – se creează un fișier .calc2backup

    Conținut: Toate favoritele, setările, favoritele echipei (opțional), pluginurile instalate.

    Restaurarea copiei de rezervă


    Prin Setări → 📂 Restaurare copie de rezervă:

    1. Selectați fișierul (.calc2backup)
    2. Introduceți parola
    3. Alegeți domeniul: doar favorite / doar setări / totul
    4. Faceți clic pe 🔄 Restaurare

    ⚠️ La restaurare datele existente sunt suprascrise. Înainte de restaurare se oferă o copie automată a datelor curente.


    💡 Sfaturi


  • $A$1 → referință absolută (listă derulantă lângă câmpurile de celule)

  • Ctrl+S → salvați formula în favorite

  • Ctrl+C → copiați formula (în afara câmpurilor de introducere)

  • Ctrl+Z / Ctrl+Y → anulare / refacere

  • Ctrl+F12 → minimizați / restaurați fereastra (funcționează și când Calc2 este minimizat)

  • Tasta Delete în lista de favorite → ștergeți intrarea

  • Formulele pot fi ajustate direct în câmpul de ieșire după generare

  • 📁 Structura proiectului


    `
    Calc2.py ← programul principal
    plugin_manager.py ← managerul de pluginuri
    IMPORTANT_NOTICE.md ← note privind crearea pluginurilor
    data/
    README_de.md / README_en.md / ... ← ajutor per limbă
    REFERENZ_de.md / REFERENZ_en.md / ... ← referință de funcții per limbă
    language/
    languages.json ← traduceri interfață (38 de limbi)
    formula_explanations.json
    services/
    language_tool.py ← expert: adăugarea unei noi limbi
    settings_service.py
    auth_service.py
    favorites_service.py
    network_sync.py
    install_service.py
    backup_service.py ← copie de rezervă și restaurare
    json_validator.py ← verificare și corecție languages.json / formula_explanations.json
    plugins/ ← folderul de pluginuri (creat automat)
    pluginul_meu/
    plugin.json
    formulas.json
    fonts/
    NotoSansDevanagari-Regular.ttf ← fontul hindi
    NotoSansArabic-Regular.ttf ← font arab (RTL)
    NotoSansHebrew-Regular.ttf ← font ebraic (RTL)
    python/ ← Python încorporat
    python.exe
    ...
    settings.json ← creat automat
    favorite.json ← favorite locale (creat automat)
    `

    🧠 Aspecte tehnice remarcabile


  • Scriere atomică a fișierelor → previne fișierele corupte la salvare

  • Arhitectură de servicii → logica și interfața utilizatorului sunt strict separate

  • Migrare automată → formatele vechi de favorite sunt detectate și convertite

  • Gestionare robustă a erorilor → fișierele defecte nu provoacă blocarea aplicației

  • Evidențierea sintaxei → formulele sunt afișate în culori

  • Mod întunecat → complet suportat

  • Sistem de pluginuri → Calc2 poate fi extins cu pluginuri de formule proprii

  • Motor RTL → detectare automată a limbilor RTL, oglindire completă a interfeței cu fonturi adecvate

  • Copie de rezervă și restaurare → copii de rezervă criptate AES cu nume și parolă, restaurare selectivă

  • Validator JSON → verificare și corecție automată a languages.json și formula_explanations.json incl. denumiri ale țărilor și câmpuri obligatorii

  • Sursă LibreOfficeformula_explanations.json este populat din documentația oficială LibreOffice Calc (https://help.libreoffice.org)

  • Comandă rapidă globalăCtrl+F12 funcționează la nivel de sistem prin biblioteca keyboard (fir de execuție în fundal)

  • Licență


    Liber de utilizat în scopuri personale și comerciale.