LibreOffice Calc Asistente de Fórmulas


Una herramienta Python para crear, probar y gestionar fórmulas de LibreOffice Calc de forma rápida – con sistema de favoritos, sincronización de equipo, multilingüismo y gestor de plugins.

🚀 Funcionalidades


  • 📑 4 pestañas con más de 60 funciones

  • 🌐 38 idiomas (incluido hindi con instalación automática de fuentes)

  • ⭐ Sistema de favoritos (local y sincronización de equipo mediante unidad de red)

  • 🛠 Panel de administración para favoritos de equipo (protegido por contraseña)

  • 📋 Fórmulas copiables directamente con resaltado de sintaxis

  • ✏️ Campo de salida editable con Deshacer/Rehacer

  • 📖 Ayuda integrada y referencia de funciones (por idioma)

  • 💾 Guardado automático (JSON, escritura atómica)

  • 🌙 Modo oscuro

  • 🔌 Gestor de plugins para crear plugins de fórmulas propios

  • 🔤 Compatibilidad RTL (de derecha a izquierda) – detección automática de la dirección de escritura

  • 🗄️ Copia de seguridad y restauración – guarda todos los ajustes y favoritos con nombre y contraseña

  • ⌨️ Atajo global Ctrl+F12 para minimizar/restaurar
  • 🔍 Validador JSON – comprobación y corrección automática de languages.json y formula_explanations.json

  • 🖥️ Uso


    1. Introducir datos

  • Rango de celdas (p. ej. A1:A10)

  • Celda 1 / Celda 2 (p. ej. A1, B1)

  • Parámetro opcional (p. ej. texto o índice)

  • Modo de referencia absoluta seleccionable: A1, $A1, A$1, $A$1

  • 2. Seleccionar función Elige una pestaña y haz clic en una función – la fórmula se genera de inmediato.

    3. Ajustar la fórmula La fórmula generada puede editarse directamente en el campo de salida.

    4. Copiar Con un clic al portapapeles (incluidos los colores de sintaxis).

    5. Usar favoritos

  • ⭐ Guardar → guardar la fórmula actual (Ctrl+S)

  • 📂 Cargar → reutilizar una fórmula

  • ❌ Eliminar → tecla Supr o botón

  • 🕐 Historial → fórmulas usadas recientemente

  • 📊 Resumen de pestañas


    Pestaña 1 – Funciones básicas + - \* / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT

    Pestaña 2 – Funciones avanzadas IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE

    Pestaña 3 – Fecha y texto TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM

    Pestaña 4 – Búsqueda y redondeo VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND


    📖 Explicaciones de fórmulas desde la documentación de LibreOffice


    El archivo formula_explanations.json se rellena directamente desde la documentación oficial de LibreOffice Calc (https://help.libreoffice.org).

    Fuente de datos y actualización


  • Las descripciones, información de sintaxis y ejemplos se obtienen del sitio web de ayuda oficial de LibreOffice
  • Los idiomas admitidos dependen de las traducciones disponibles en el sitio web
  • El archivo contiene para cada función: nombre, sintaxis, descripción, ejemplo y categoría
  • Se pueden añadir o corregir entradas manualmente (véase Validador JSON)

  • Estructura de formula_explanations.json


    `json
    {
    "SUM": {
    "es": {
    "syntax": "SUM(Número1; Número2; ...)",
    "description": "Suma todos los números en un rango de celdas.",
    "example": "=SUM(A1:A10)"
    },
    "en": {
    "syntax": "SUM(Number1; Number2; ...)",
    "description": "Adds all numbers in a cell range.",
    "example": "=SUM(A1:A10)"
    }
    }
    }
    `

    | Campo | Obligatorio | Descripción |
    |-------|------------|-------------|
    | syntax | ✅ | Sintaxis de la fórmula con parámetros |
    | description | ✅ | Descripción breve de la función |
    | example | ✅ | Ejemplo de uso como fórmula lista para usar |
    | note | ❌ | Nota opcional |

    💡 Nota: Si no existe una entrada para un idioma, la app vuelve automáticamente a la versión en inglés.

    ---

    🔍 Validador JSON para archivos de idioma


    El Validador JSON integrado comprueba y corrige languages.json y formula_explanations.json para garantizar coherencia, completitud y designaciones de país correctas.

    Accesible desde Configuración → 🔍 Validador JSON.

    ¿Qué se comprueba?


    #### languages.json

  • ✅ Los 38 idiomas presentes (por código ISO 639-1)
  • Nombres de país e idioma correctos (p. ej. "es""Español")
  • ✅ Sin códigos de idioma duplicados
  • ✅ Campos obligatorios presentes: name, native_name, flag, rtl
  • ✅ Marca RTL correctamente configurada (Árabe, Hebreo, Persa, Urdu → "rtl": true)

  • #### formula_explanations.json

  • ✅ Todas las funciones de las 4 pestañas registradas
  • ✅ Campos obligatorios presentes: syntax, description, example
  • ✅ Sin campos vacíos ("" o null)
  • ✅ Códigos de idioma coinciden con languages.json

  • Funciones de corrección


    | Tipo de error | Corrección automática |
    |--------------|----------------------|
    | Nombre de país incorrecto | Sustituido por el nombre correcto según ISO |
    | Entrada de idioma faltante | Completado con versión de reserva en inglés |
    | Campo obligatorio vacío | Marcado como "[MISSING]" para revisión manual |
    | Entrada duplicada | Duplicados eliminados, se conserva la más completa |
    | Marca RTL incorrecta | Corregida automáticamente según códigos RTL conocidos |

    Cómo usarlo


    1. Abre Configuración → 🔍 Validador JSON
    2. Selecciona el archivo: languages.json o formula_explanations.json (o ambos)
    3. 🔎 Comprobar – muestra todos los problemas encontrados
    4. 🛠 Corregir automáticamente – corrige todos los errores solucionables automáticamente
    5. 💾 Guardar – escribe atómicamente el archivo corregido
    6. 📋 Exportar informe (opcional) – guarda un archivo de texto con todos los hallazgos

    ⚠️ Nota: Antes de cada corrección automática se crea una copia de seguridad del archivo original (languages.json.bak / formula_explanations.json.bak).

    ⭐ Sistema de favoritos


  • Guardar y reutilizar fórmulas propias

  • Separación entre favoritos personales y de equipo

  • Los favoritos de equipo son de solo lectura (solo el administrador puede editarlos)

  • Se evitan entradas duplicadas

  • Ordenación libre de los favoritos personales

  • Sincronización mediante unidad de red (configurable opcionalmente)

  • Sincronización de equipo


    Mediante Configuración → 🌐 Ruta de red se puede introducir una unidad de red (p. ej. \\\\Servidor\\Recurso\\formulas).

  • Al iniciar: los favoritos de red se guardan localmente (copia sin conexión)

  • Al guardar: las fórmulas propias se escriben en la red, los favoritos de equipo no se modifican

  • 🛠 Panel de administración


    Accesible mediante el botón 🛠. Al hacer clic por primera vez se establece una contraseña (PBKDF2-SHA256, solo se guarda el hash).

  • Añadir, editar y eliminar fórmulas de equipo

  • Cambiar contraseña

  • Los cambios se escriben directamente en la unidad de red

  • 🔌 Gestor de plugins


    El gestor de plugins (plugin_manager.py) es una herramienta independiente para crear y gestionar plugins de fórmulas propios para Calc2. Se encuentra en la misma carpeta que Calc2.py y se inicia con el botón 🔌 en Calc2.py:

    Funciones


  • Crear nuevo plugin – asistente paso a paso (nombre, fórmulas, traducciones, resumen)

  • Añadir fórmulas – agregar fórmulas a un plugin existente

  • Editar traducciones – traducir nombres de fórmulas a los 38 idiomas

  • Abrir carpeta de plugins – directamente en el explorador de archivos

  • Eliminar plugin – con confirmación de seguridad

  • Estructura del plugin


    Cada plugin se encuentra como subcarpeta en plugins/ y consta de dos archivos:

    `
    plugins/
    mi_plugin/
    plugin.json ← metadatos (nombre, versión, autor, descripción)
    formulas.json ← fórmulas con traducciones
    `

    Ejemplo plugin.json:

    `
    {
    "id": "mi_plugin",
    "enabled": true,
    "version": "1.0",
    "author": "Tu Nombre",
    "icon": "💰",
    "name": { "en": "Finance Formulas", "es": "Fórmulas Financieras" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    Ejemplo formulas.json:

    `
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "es": "Suma del rango" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "es": "Básico" }
    }
    ]
    `

    Aviso importante (⚠️ Important Notice)


    En el gestor de plugins hay un botón ⚠️ Important Notice. Al hacer clic se abre una ventana con todas las reglas para la creación correcta de plugins en inglés. La misma información está disponible en IMPORTANT_NOTICE.md.

    🌐 Multilingüismo


    38 idiomas disponibles, cambiables directamente en la aplicación.
    Se pueden añadir nuevos idiomas mediante el botón 🌍 con el asistente de idiomas.

    Nota sobre hindi (हिंदी): Al cambiar a hindi por primera vez, se instala una vez la fuente *Noto Sans Devanagari* a nivel del sistema. Windows solicitará permisos de administrador.

    🔤 Compatibilidad RTL (de derecha a izquierda)


    Los idiomas con escritura de derecha a izquierda se detectan automáticamente y toda la interfaz se invierte:

  • Árabe (عربي) – detección RTL automática
  • Hebreo (עברית) – detección RTL automática
  • Persa / Farsi (فارسی) – detección RTL automática
  • Urdu (اردو) – detección RTL automática

  • Qué cambia en modo RTL: El diseño completo de la interfaz se invierte, los campos de entrada usan alineación RTL, la fuente cambia automáticamente a una compatible con RTL (p. ej. *Noto Sans Arabic*, *Noto Sans Hebrew*).

    💡 Nota: Las fórmulas de LibreOffice generadas siempre permanecen en sintaxis LTR – solo la interfaz cambia de dirección.


    🗄️ Copia de seguridad y restauración


    Crear una copia de seguridad


    Mediante Configuración → 🗄️ Crear copia de seguridad:

    1. Nombre – etiqueta libre (p. ej. Backup_Mayo_2025)
    2. Contraseña – la copia se cifra con AES; sin ella no se puede restaurar
    3. Ubicación – local o en una unidad de red
    4. Haz clic en 💾 Crear copia de seguridad – se genera un archivo .calc2backup

    Contenido: Todos los favoritos, ajustes, favoritos de equipo (opcional), plugins instalados.

    Restaurar una copia de seguridad


    Mediante Configuración → 📂 Restaurar copia de seguridad:

    1. Selecciona el archivo (.calc2backup)
    2. Introduce la contraseña
    3. Elige el alcance: solo favoritos / solo ajustes / todo
    4. Haz clic en 🔄 Restaurar

    ⚠️ Los datos existentes se sobrescriben al restaurar. Antes se ofrece una copia automática de los datos actuales.


    💡 Consejos


  • $A$1 → referencia absoluta (menú desplegable junto a los campos de celda)

  • Ctrl+S → guardar fórmula en favoritos

  • Ctrl+C → copiar fórmula (fuera de los campos de entrada)

  • Ctrl+Z / Ctrl+Y → Deshacer / Rehacer

  • Ctrl+F12 → minimizar/restaurar ventana (funciona incluso cuando Calc2 está minimizado)

  • Tecla Supr en la lista de favoritos → eliminar entrada

  • Las fórmulas pueden ajustarse directamente en el campo de salida tras generarlas

  • 📁 Estructura del proyecto


    `
    Calc2.py ← programa principal
    plugin_manager.py ← gestor de plugins
    IMPORTANT_NOTICE.md ← instrucciones para la creación de plugins
    data/
    README_es.md / README_en.md / ... ← ayuda por idioma
    REFERENCIA_es.md / REFERENCIA_en.md / ... ← referencia de funciones por idioma
    language/
    languages.json ← traducciones de la interfaz (38 idiomas)
    formula_explanations.json
    services/
    language_tool.py ← asistente: añadir nuevo idioma
    settings_service.py
    auth_service.py
    favorites_service.py
    network_sync.py
    install_service.py
    backup_service.py ← copia de seguridad y restauración
    json_validator.py ← comprobación y corrección de languages.json / formula_explanations.json
    plugins/ ← carpeta de plugins (creada automáticamente)
    mi_plugin/
    plugin.json
    formulas.json
    fonts/
    NotoSansDevanagari-Regular.ttf ← fuente hindi
    NotoSansArabic-Regular.ttf ← fuente árabe (RTL)
    NotoSansHebrew-Regular.ttf ← fuente hebrea (RTL)
    python/ ← Python integrado
    python.exe
    ...
    settings.json ← se crea automáticamente
    favoritos.json ← favoritos locales (se crea automáticamente)
    `

    🧠 Aspectos técnicos destacados


  • Escritura atómica de archivos → evita archivos corruptos al guardar

  • Arquitectura de servicios → lógica e interfaz de usuario estrictamente separadas

  • Migración automática → los formatos de favoritos antiguos se detectan y convierten

  • Manejo robusto de errores → los archivos dañados no causan fallos en la aplicación

  • Resaltado de sintaxis → las fórmulas se muestran en color

  • Modo oscuro → completamente compatible

  • Sistema de plugins → Calc2 es ampliable mediante plugins de fórmulas propios

  • Motor RTL → detección automática de idiomas RTL, espejo completo de la interfaz con fuentes adecuadas

  • Copia de seguridad y restauración → copias cifradas AES con nombre y contraseña, restauración selectiva

  • Validador JSON → comprobación y corrección automática de languages.json y formula_explanations.json incl. nombres de país y campos obligatorios

  • Fuente LibreOfficeformula_explanations.json se rellena desde la documentación oficial de LibreOffice Calc (https://help.libreoffice.org)

  • Atajo globalCtrl+F12 funciona a nivel del sistema mediante la biblioteca keyboard (hilo en segundo plano)

  • Licencia


    De uso libre para fines personales y comerciales.