用途 该技能用于创建、读取、编辑、修复或清理电子表格文件(.xlsx、.xlsm、.csv、.tsv)。当构建任务的产物类型为电子表格,或任务点名相关文件格式时使用。
主要能力
- 用预装的 openpyxl 库通过生成器脚本生成 xlsx;生成器保存在 .src/ 下,是可编辑的源文件,二进制产物始终由它重新生成。
- 创建或编辑含公式与格式的工作簿使用 openpyxl。
- 快速查看现有工作表可用 muse.read(转为 markdown 分页阅读),但它不含单元格坐标,因此不能据此规划编辑。
- 读取工作簿模型(公式及其值)需两次 load_workbook 遍历,详见 /opt/hatch/skills/artifacts/spreadsheet/references/formulas.md。
- 批量或杂乱的表格数据进出使用标准库 Python csv;只有在任务确实需要时才执行 pip install --break-system-packages pandas。
- 设计、结构、数字格式与模型约定见 /opt/hatch/skills/artifacts/spreadsheet/references/visual.md。
- 公式、重算与编辑现有工作簿见 /opt/hatch/skills/artifacts/spreadsheet/references/formulas.md。
使用方式与交付要求
- 设置非空的 workbook.properties.title 和人类可读的文件名。数据只能来自构建收集的内容;没有的值是空单元格或提问,绝不编造数字。
- 写公式而非预计算结果,例如 sheet["B10"] = "=SUM(B2:B9)",不使用 Python 算出的总数,确保输入变化时工作表会重算。
- 严格遵循用户规格:准确的标签名、列标题和他们写出的公式。
- 交付时零公式错误:运行重算检查并修复其指出的问题。
- 在读者可见处(单元格批注或相邻带标签单元格)记录假设与硬编码数字,有真实来源时注明来源,数字来自用户时如实说明。
- 供他人填写的工作簿需附简短图例,标明可编辑单元格,并给一行真实值示例;被要求编辑的文件不要添加示例行。
验证流程
- 脚本 /opt/hatch/skills/artifacts/scripts/recalc_xlsx.py:通过无头 LibreOffice 原地重算工作簿,并以 JSON 报告每个公式错误单元格;文件含公式时必运行。errors_found 时退出码为 0,应读取 JSON 而非依据退出码。
- 脚本 /opt/hatch/skills/artifacts/scripts/validate_xlsx.py:打开工作簿做回读校验,包括 zip 完整性、工作表部件、已填充单元格计数;校验失败时不要交付链接。csv 输出不做读取器检查。
- 顺序:文件含公式时先运行 recalc_xlsx.py,再运行 validate_xlsx.py,然后遵循 /opt/hatch/skills/artifacts/testing/SKILL.md。重算干净只证明公式可求值,不证明其正确;在构建完整网格前抽查两三个公式是否取到预期值。
适用场景与限制 适用于需生成或修改 xlsx/xlsm/csv/tsv 的构建任务。限制:数据来源限于构建收集内容,缺失值只能留空或提问;必须遵守用户明确规格;交付前必须通过公式重算与文件校验;产品收费、价格、平台支持等信息资料暂未提供。