用途:当电子表格文件是主要输入或输出时使用,涵盖读取、编辑、清洗、建模、公式修复与工作簿生成。
主要能力与工具选择:用公式或格式创建编辑用 openpyxl;批量数据进出用 pandas(read_excel、to_excel);快速查看工作表用 markitdown file.xlsx,每个 sheet 以 ## SheetName 标记,也支持 .xlsm,但不提供单元格坐标,不能据此规划编辑;读取模型(公式与值)需两次 load_workbook。openpyxl、pandas、markitdown 已预装,直接写脚本导入即可,仅在导入失败或命令缺失时才 pip install。
输出要求:全表使用专业字体(如 Arial、Times New Roman),除非用户另有要求;不得有公式错误,recalc.py 报告 errors_found 时不可交付;用公式而非硬编码结果,如 sheet['B10'] = '=SUM(B2:B9)';严格遵循用户规格的标签名、表头与公式;在单元格注释或表格旁记录每个假设与硬编码数字及其来源。
重算:只要文件含公式就必须执行 python scripts/recalc.py output.xlsx [timeout_seconds],默认 30 秒。LibreOffice 计算全部公式并原地重写,返回 JSON:status、total_formulas、total_errors 及 error_summary。返回含 error 键表示未重算,只有该情况非零退出;errors_found 仍退出 0,不可当作干净工作簿。重算通过只证明公式可求值,不证明范围或引用正确,建议先写 2–3 个公式验证。含外部链接的工作簿用 openpyxl 重存会丢链接,recalc.py 在此状态下拒绝运行,需先复制原单元格值(--force 可覆盖并接受丢失)。
公式选择:优先 Excel 2007 时代函数如 SUMIFS、INDEX、MATCH、IFERROR、SUMPRODUCT;_xlfn.TEXTJOIN、_xlfn.CONCAT、_xlfn.IFS、_xlfn.SWITCH、_xlfn.MAXIFS、_xlfn.MINIFS 需加前缀;禁用 XLOOKUP、XMATCH、SORT、FILTER、UNIQUE、SEQUENCE。
openpyxl 注意事项:data_only=True 读取缓存值但丢失公式,保存具破坏性;合并单元格只写左上锚点;.xlsm 需 keep_vba=True 保宏;含空格的表名跨表引用要加引号。
适用场景与限制:适合工作簿生成、公式修复、财务建模等;依赖 openpyxl、pandas、markitdown 与 LibreOffice,跨 Copilot、Claude Code、Codex 使用需放到对应技能目录。