用途
xlsx-official 是一套用于创建、编辑和分析 Excel(.xlsx)文件的工作流技能,主要面向需要生成或修改电子表格并保持公式正确、可重算的场景,尤其是财务模型类工作簿。
主要能力
- 数据分析:用 pandas 读取工作簿(可按工作表读取)、预览、查看列信息与统计,并将结果导出为 Excel。
- 文件创建与编辑:用 openpyxl 写入数据、公式、字体/填充/对齐等格式、列宽,插入删除行列、新增工作表,并在编辑既有文件时保留原有公式与格式。
- 公式重算:使用 recalc.py 脚本调用 LibreOffice 重算所有工作表公式,首次运行自动配置 LibreOffice;脚本扫描全部单元格中的 #REF!、#DIV/0! 等错误,返回含错误类型、数量与位置的 JSON。
- 公式优先原则:合计、增长率、平均值等一律写成 Excel 公式(如 =SUM(B2:B9)、=(C4-C2)/C2),不用 Python 算好再硬编码,保证源数据变化后表格可重算。
- 零公式错误要求:交付文件必须不含 #REF!、#DIV/0!、#VALUE!、#N/A、#NAME? 等公式错误。
- 模板保真:更新模板时须研究并严格匹配既有格式、样式与约定,既有模板约定优先于本技能的通用规范。
- 财务模型颜色编码:蓝字(RGB 0,0,255)为硬编码输入及场景可调数字;黑字(0,0,0)为全部公式与计算;绿字(0,128,0)为同工作簿内其他工作表链接;红字(255,0,0)为指向其他文件的外部链接;黄色背景(255,255,0)为需关注的关键假设或待更新单元格。
- 数字格式规范:年份以文本字符串表示(如 "2024");货币用 $#,##0 并在表头注明单位(如 Revenue ($mm));零值(含百分比)以数字格式显示为“-”,如 $#,##0;($#,##0);-;百分比默认 0.0%;估值倍数(EV/EBITDA、P/E)用 0.0x;负数用括号 (123) 而非 -123。
- 公式构造:所有假设(增长率、利润率、倍数等)放入独立假设单元格,公式中用单元格引用而非硬编码数值,例如 =B5*(1+$B$6) 而非 =B5*1.05;需核对引用正确、范围无差一错误、各预测期公式一致、覆盖零值/负数等边界情况、无意外循环引用。
- 硬编码文档化:对硬编码值添加注释或表旁单元格说明,格式为“Source: [系统/文档], [日期], [具体引用], [URL 如适用]”,示例包括公司 10-K/10-Q 页码与 SEC EDGAR 链接、Bloomberg 终端、FactSet 等来源。
使用方式
- 选择工具:数据分析用 pandas,公式与格式用 openpyxl。
- 新建或加载工作簿,修改数据、公式与格式后保存。
- 若使用了公式,必须运行:python recalc.py output.xlsx(可加超时秒数,如 python recalc.py output.xlsx 30)。
- 查看脚本返回的 JSON:status 为 success 或 errors_found,total_errors、total_formulas 及 error_summary 给出错误类型、数量与单元格位置(如 Sheet1!B5)。
- 按错误清单修正后再次重算,直至零错误。
公式验证要点:先在小范围(2-3 个单元格)测试引用是否正确;确认列映射与行偏移(Excel 行从 1 开始,DataFrame 第 5 行对应 Excel 第 6 行);注意 NaN 处理(pd.notna())、FY 数据常位于 50 列之后、多匹配需全部搜索、除法前检查分母、跨表引用格式为 Sheet1!A1。
适用场景
适用于需要生成可动态更新的 Excel 报表与模型(如财务模型)、在保留原有格式的前提下编辑既有工作簿、以及读取分析 .xlsx 数据并输出结果的场景。
限制
- 公式重算依赖 LibreOffice 与 recalc.py 脚本,首次运行需自动配置。
- openpyxl 以 data_only=True 读取后保存会用数值替换公式,导致公式永久丢失;公式在文件中以字符串保存、不被求值,需靠 recalc.py 更新数值。
- 大文件建议 read_only=True 读取或 write_only=True 写入。
- 仅在任务明确匹配上述范围时使用;输出不能替代特定环境的验证、测试或专家审查;缺少必要输入、权限、安全边界或成功标准时应停止并请求澄清。
- 该技能的具体收费、平台支持范围等未在资料中说明,暂未提供。