LibreOffice Calc Formel-hjelper


Et Python-verktøy for rask oppretting, testing og administrasjon av LibreOffice Calc-formler – med favorattsystem, teamsynkronisering, flerspråklighet og plugin-behandler.

🚀 Funksjoner


  • 📑 4 faner med over 60 funksjoner

  • 🌐 38 språk (inkl. hindi med automatisk skriftinstallasjon)

  • ⭐ Favorattsystem (lokalt og teamsynkronisering via nettverksstasjon)

  • 🛠 Adminpanel for teamfavoratter (passordbeskyttet)

  • 📋 Direkte kopierbare formler med syntaksfarging

  • ✏️ Redigerbart utdatafelt med angre/gjør om

  • 📖 Integrert hjelp og funksjonsreferanse (per språk)

  • 💾 Automatisk lagring (JSON, atomisk skrevet)

  • 🌙 Mørk modus

  • 🔌 Plugin-behandler for å lage egne formel-plugin

  • 🔤 RTL-støtte (høyre til venstre) – automatisk gjenkjenning av skriveretning

  • 🗄️ Sikkerhetskopiering og gjenoppretting – lagre alle innstillinger og favoratter med navn og passord

  • ⌨️ Global hurtigtast Ctrl+F12 for å minimere/gjenopprette vinduet
  • 🔍 JSON-validator – automatisk kontroll og retting av languages.json og formula_explanations.json

  • 🖥️ Bruk


    1. Angi inndata

  • Celleområde (f.eks. A1:A10)

  • Celle 1 / Celle 2 (f.eks. A1, B1)

  • Valgfri parameter (f.eks. tekst eller indeks)

  • Valg av absolutt referansemodus: A1, $A1, A$1, $A$1

  • 2. Velg en funksjon Velg en fane og klikk på en funksjon – formelen genereres umiddelbart.

    3. Tilpass formelen Den genererte formelen kan redigeres direkte i utdatafeltet.

    4. Kopier Overfør til utklippstavlen med ett klikk (inkl. syntaksfarger).

    5. Bruk favoratter

  • ⭐ Lagre → lagre gjeldende formel (Ctrl+S)

  • 📂 Laste → gjenbruke formel

  • ❌ Slette → Delete-tasten eller knapp

  • 🕐 Historikk → sist brukte formler

  • 📊 Faneoversikt


    Fane 1 – Grunnfunksjoner + - * / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT

    Fane 2 – Avanserte funksjoner IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE

    Fane 3 – Dato og tekst TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM

    Fane 4 – Oppslag og avrunding VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND


    📖 Formelforklaringer fra LibreOffice-dokumentasjonen


    Filen formula_explanations.json fylles direkte fra den offisielle LibreOffice Calc-dokumentasjonen (https://help.libreoffice.org).

    Datakilde og oppdatering


  • Beskrivelser, syntaksinformasjon og eksempler hentes fra LibreOffices offisielle hjelpeside
  • Støttede språk avhenger av oversettelsene tilgjengelig på siden
  • Filen inneholder for hver funksjon: navn, syntaks, beskrivelse, eksempel og kategori
  • Tillegg eller rettinger kan gjøres manuelt (se JSON-validator)

  • Struktur for formula_explanations.json


    `json
    {
    "SUM": {
    "nb": {
    "syntax": "SUM(Tall1; Tall2; ...)",
    "description": "Legger sammen alle tall i et celleområde.",
    "example": "=SUM(A1:A10)"
    },
    "en": {
    "syntax": "SUM(Number1; Number2; ...)",
    "description": "Adds all numbers in a cell range.",
    "example": "=SUM(A1:A10)"
    }
    }
    }
    `

    | Felt | Obligatorisk | Beskrivelse |
    |------|-------------|-------------|
    | syntax | ✅ | Formelsyntaks med parametere |
    | description | ✅ | Kort beskrivelse av funksjonen |
    | example | ✅ | Brukseksempel som ferdig formel |
    | note | ❌ | Valgfri merknad |

    💡 Merknad: Hvis det ikke finnes en oppføring for et språk, faller appen automatisk tilbake til den engelske versjonen.

    ---

    🔍 JSON-validator for språkfiler


    Den integrerte JSON-validatoren kontrollerer og retter languages.json og formula_explanations.json for konsistens, fullstendighet og korrekte landsnavn. Tilgjengelig via Innstillinger → 🔍 JSON-validator.

    Hva kontrolleres?


    #### languages.json

  • ✅ Alle 38 språk er til stede (etter ISO 639-1 språkkode)
  • ✅ Korrekte lands- og språknavn (f.eks. "nb""Norsk bokmål")
  • ✅ Ingen duplikate språkkoder
  • ✅ Obligatoriske felt til stede: name, native_name, flag, rtl
  • ✅ RTL-merking satt korrekt (Arabisk, Hebraisk, Persisk, Urdu → "rtl": true)

  • #### formula_explanations.json

  • ✅ Alle funksjoner fra de 4 fanene er registrert
  • ✅ Obligatoriske felt til stede: syntax, description, example
  • ✅ Ingen tomme felt ("" eller null)
  • ✅ Språkkoder stemmer overens med languages.json

  • Rettefunksjoner


    | Feiltype | Automatisk retting |
    |----------|-------------------|
    | Feil landsnavn | Erstattet med riktig navn i henhold til ISO |
    | Manglende språkoppføring | Fylt med engelsk reserveversjon |
    | Tomt obligatorisk felt | Merket som "[MISSING]" for manuell gjennomgang |
    | Duplikat oppføring | Duplikater fjernet, mest fullstendig oppføring beholdt |
    | Feil RTL-merking | Automatisk rettet basert på kjente RTL-koder |

    Bruk


    1. Åpne Innstillinger → 🔍 JSON-validator
    2. Velg fil: languages.json eller formula_explanations.json (eller begge)
    3. 🔎 Kontroller – viser alle fundne problemer
    4. 🛠 Rett automatisk – løser alle automatisk rettbare feil
    5. 💾 Lagre – skriver den rettede filen atomisk tilbake
    6. 📋 Eksporter rapport (valgfritt) – lagrer en tekstfil med alle funn

    ⚠️ Merknad: Før hver automatisk retting opprettes en sikkerhetskopi av den originale filen (languages.json.bak / formula_explanations.json.bak).

    ⭐ Favorattsystem


  • Lagre og gjenbruke egne formler

  • Skille mellom egne og teamfavoratter

  • Teamfavoratter er skrivebeskyttet (bare admin kan redigere)

  • Duplikate oppføringer forhindres

  • Fri sortering av egne favoratter

  • Synkronisering via nettverksstasjon (valgfritt konfigurerbart)

  • Teamsynkronisering


    Via Innstillinger → 🌐 Nettverksbane kan man angi en nettverksstasjon (f.eks. \\\\Server\\Deling\\formler).

  • Ved oppstart: nettverksfavoratter lagres lokalt (offline-reserve)

  • Ved lagring: egne formler skrives til nettverket, teamformler forblir uendret

  • 🛠 Adminpanel


    Tilgjengelig via 🛠-knappen. Ved første klikk angis et passord (PBKDF2-SHA256, bare hash-verdi lagres).

  • Legge til, redigere og slette teamformler

  • Endre passord

  • Skrive endringer direkte til nettverksstasjonen

  • 🔌 Plugin-behandler


    Plugin-behandleren (plugin_manager.py) er et selvstendig verktøy for å opprette og administrere egne formel-plugin for Calc2. Den ligger i samme mappe som Calc2.py og startes via 🔌-knappen i Calc2.py:

    Funksjoner


  • Opprett nytt plugin – steg-for-steg-veiviser (navn, formler, oversettelser, sammendrag)

  • Legge til formler – legge til formler i et eksisterende plugin

  • Rediger oversettelser – oversette formelnavn til alle 38 språk

  • Åpne plugin-mappe – direkte i filutforskeren

  • Slette plugin – inkl. bekreftelsesdialog

  • Plugin-struktur


    Hvert plugin ligger som en undermappe i plugins/ og består av to filer:

    `
    plugins/
    mitt_plugin/
    plugin.json ← metadata (navn, versjon, forfatter, beskrivelse)
    formulas.json ← formler med oversettelser
    `

    Eksempel på plugin.json:

    `
    {
    "id": "mitt_plugin",
    "enabled": true,
    "version": "1.0",
    "author": "Ditt navn",
    "icon": "💰",
    "name": { "en": "Finance Formulas", "nb": "ØkonomiFormler" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    Eksempel på formulas.json:

    `
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "nb": "Sum av område" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "nb": "Grunnleggende" }
    }
    ]
    `

    Viktig merknad (⚠️ Important Notice)


    I plugin-behandleren finnes knappen ⚠️ Important Notice. Et klikk åpner et vindu med alle regler for korrekt plugin-oppretting på engelsk. Den samme informasjonen finnes også i IMPORTANT_NOTICE.md.

    🌐 Flerspråklighet


    38 språk tilgjengelige, kan byttes direkte i appen.
    Nye språk kan legges til via 🌍-knappen med Språkveiviseren.

    Merknad om hindi (हिंदी): Ved første bytte til hindi installeres skrifttypen *Noto Sans Devanagari* systemomfattende én gang. Windows ber da om administratorrettigheter.

    🔤 RTL-støtte (høyre til venstre)


    Språk med skrift fra høyre til venstre gjenkjennes automatisk og hele grensesnittet speiles:

  • Arabisk (عربي) – automatisk RTL-gjenkjenning
  • Hebraisk (עברית) – automatisk RTL-gjenkjenning
  • Persisk / Farsi (فارسی) – automatisk RTL-gjenkjenning
  • Urdu (اردو) – automatisk RTL-gjenkjenning

  • Hva endres i RTL-modus: Hele UI-layouten speiles, inndatafelter bruker RTL-justering, skrifttypen byttes automatisk til en RTL-kompatibel (f.eks. *Noto Sans Arabic*, *Noto Sans Hebrew*).

    💡 Merknad: Genererte LibreOffice-formler forblir alltid i LTR-syntaks – bare brukergrensesnittet endrer retning.


    🗄️ Sikkerhetskopiering og gjenoppretting


    Opprett sikkerhetskopi


    Via Innstillinger → 🗄️ Opprett sikkerhetskopi:

    1. Navn – valgfri betegnelse (f.eks. Kopi_Mai_2025)
    2. Passord – kopien krypteres med AES; uten passord er gjenoppretting ikke mulig
    3. Lagringssted – lokalt eller på en nettverksstasjon
    4. Klikk 💾 Opprett sikkerhetskopi – oppretter en .calc2backup-fil

    Innhold: Alle favoratter, innstillinger, teamfavoratter (valgfritt), installerte plugin.

    Gjenopprett sikkerhetskopi


    Via Innstillinger → 📂 Gjenopprett sikkerhetskopi:

    1. Velg sikkerhetskopifil (.calc2backup)
    2. Oppgi passordet
    3. Velg omfang: bare favoratter / bare innstillinger / alt
    4. Klikk 🔄 Gjenopprett

    ⚠️ Eksisterende data overskrives ved gjenoppretting. Et automatisk backup av gjeldende data tilbys på forhånd.


    💡 Tips


  • $A$1 → absolutt referanse (rullegardin ved siden av cellefeltene)

  • Ctrl+S → lagre formel i favoratter

  • Ctrl+C → kopiere formel (utenfor inndatafelt)

  • Ctrl+Z / Ctrl+Y → angre / gjør om

  • Ctrl+F12 → minimere / gjenopprette vinduet (fungerer også når Calc2 er minimert)

  • Delete-tasten i favorattlisten → slett oppføring

  • Formler kan tilpasses direkte i utdatafeltet etter generering

  • 📁 Prosjektstruktur


    `
    Calc2.py ← hovedprogram
    plugin_manager.py ← plugin-behandler
    IMPORTANT_NOTICE.md ← merknader om plugin-oppretting
    data/
    README_de.md / README_en.md / ... ← hjelp per språk
    REFERENZ_de.md / REFERENZ_en.md / ... ← funksjonsreferanse per språk
    language/
    languages.json ← UI-oversettelser (38 språk)
    formula_explanations.json
    services/
    language_tool.py ← veiviser: legge til nytt språk
    settings_service.py
    auth_service.py
    favorites_service.py
    network_sync.py
    install_service.py
    backup_service.py ← sikkerhetskopiering og gjenoppretting
    json_validator.py ← kontroll og retting av languages.json / formula_explanations.json
    plugins/ ← plugin-mappe (opprettes automatisk)
    mitt_plugin/
    plugin.json
    formulas.json
    fonts/
    NotoSansDevanagari-Regular.ttf ← hindi-skrifttype
    NotoSansArabic-Regular.ttf ← arabisk skrifttype (RTL)
    NotoSansHebrew-Regular.ttf ← hebraisk skrifttype (RTL)
    python/ ← innebygd Python
    python.exe
    ...
    settings.json ← opprettes automatisk
    favoratter.json ← lokale favoratter (opprettes automatisk)
    `

    🧠 Tekniske høydepunkter


  • Atomisk filskriving → forhindrer ødelagte filer ved lagring

  • Tjenestearkitektur → logikk og brukergrensesnitt er strengt atskilt

  • Automatisk migrering → gamle favoritformater gjenkjennes og konverteres

  • Robust feilhåndtering → feilaktige filer fører ikke til krasj

  • Syntaksfarging → formler vises i farger

  • Mørk modus → fullt støttet

  • Plugin-system → Calc2 kan utvides med egne formel-plugin

  • RTL-motor → automatisk gjenkjenning av RTL-språk, full UI-speiling inkl. passende skrifttyper

  • Sikkerhetskopiering og gjenoppretting → AES-krypterte sikkerhetskopier med navn og passord, selektiv gjenoppretting

  • JSON-validator → automatisk kontroll og retting av languages.json og formula_explanations.json inkl. landsnavn og obligatoriske felt

  • LibreOffice-kildeformula_explanations.json fylles fra den offisielle LibreOffice Calc-dokumentasjonen (https://help.libreoffice.org)

  • Global hurtigtastCtrl+F12 fungerer systemomfattende via keyboard-biblioteket (bakgrunnstråd)

  • Lisens


    Fritt brukbart til personlige og kommersielle formål.