LibreOffice Calc 公式助手


一款用于快速创建、测试和管理 LibreOffice Calc 公式的 Python 工具——具备收藏夹系统、团队同步、多语言支持和插件管理器。

🚀 功能特性


  • 📑 4 个选项卡,涵盖 60 余种函数

  • 🌐 38 种语言(含印地语,支持自动安装字体)

  • ⭐ 收藏夹系统(本地存储及通过网络驱动器进行团队同步)

  • 🛠 团队收藏夹管理员面板(密码保护)

  • 📋 可直接复制的公式,带语法高亮显示

  • ✏️ 可编辑的输出区域,支持撤销/重做

  • 📖 内置帮助文档及函数参考(按语言分类)

  • 💾 自动保存(JSON 格式,原子写入)

  • 🌙 深色模式

  • 🔌 插件管理器,可创建自定义公式插件

  • 🔤 RTL 支持(从右到左)– 自动检测书写方向

  • 🗄️ 备份与恢复 – 使用名称和密码保存所有设置和收藏夹

  • ⌨️ 全局快捷键 Ctrl+F12,用于最小化/还原窗口
  • 🔍 JSON 验证器 – 自动检查并修正 languages.jsonformula_explanations.json

  • 🖥️ 使用方法


    1. 输入数据

  • 单元格范围(例如 A1:A10

  • 单元格 1 / 单元格 2(例如 A1B1

  • 可选参数(例如文本或索引)

  • 可选绝对引用模式:A1$A1A$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": {
    "zh": {
    "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.jsonformula_explanations.json 的一致性、完整性以及国家名称的正确性。可通过设置 → 🔍 JSON 验证器访问。

    检查内容


    #### languages.json

  • ✅ 全部 38 种语言均存在(按 ISO 639-1 语言代码)
  • ✅ 正确的国家和语言名称(例如 "zh""中文"
  • ✅ 无重复语言代码
  • ✅ 必填字段存在:namenative_nameflagrtl
  • ✅ RTL 标志正确设置(阿拉伯语、希伯来语、波斯语、乌尔都语 → "rtl": true

  • #### formula_explanations.json

  • ✅ 4 个选项卡中的所有函数均已记录
  • ✅ 必填字段存在:syntaxdescriptionexample
  • ✅ 无空字段(""null
  • ✅ 语言代码与 languages.json 一致

  • 修正功能


    | 错误类型 | 自动修正 |
    |---------|---------|
    | 错误的国家名称 | 按 ISO 标准替换为正确名称 |
    | 缺失的语言条目 | 用英文备用版本填充 |
    | 空的必填字段 | 标记为 "[MISSING]" 以供手动审查 |
    | 重复条目 | 删除重复项,保留更完整的条目 |
    | 错误的 RTL 标志 | 根据已知 RTL 代码自动修正 |

    使用方法


    1. 打开设置 → 🔍 JSON 验证器
    2. 选择文件:languages.jsonformula_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", "zh": "财务公式" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    formulas.json 示例:

    `
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "zh": "区域求和" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "zh": "基础" }
    }
    ]
    `

    重要提示(⚠️ 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年5月
    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.jsonformula_explanations.json,包括国家名称和必填字段

  • LibreOffice 来源formula_explanations.json 从 LibreOffice Calc 官方文档填充(https://help.libreoffice.org)

  • 全局快捷键Ctrl+F12 通过 keyboard 库在系统级别生效(后台线程)

  • 许可证


    可免费用于个人及商业用途。