SuperAPI AI 工具集

xlsx

办公与效率

查看项目

更新于 10-15 08:19

技能介绍

用途

xlsx 用于创建、编辑和分析 .xlsx 文件。针对不同任务,该技能提供不同的工具与工作流。

主要能力

  • 数据分析:使用 pandas 读取、预览、统计和导出数据,可读取单个工作表或全部工作表(sheet_name=None)。
  • 新建文件:使用 openpyxl 的 Workbook 写入数据、公式和格式(字体、填充、对齐、列宽等)。
  • 编辑现有文件:使用 openpyxl 的 load_workbook 加载并保留公式与格式,可修改单元格、插入行、删除列、新增工作表。
  • 公式重算:通过 scripts/recalc.py 使用 LibreOffice 重算公式并扫描所有单元格中的 Excel 错误。

公式与建模规范

要求始终使用 Excel 公式而非在 Python 中计算后硬编码结果,例如用 =SUM(B2:B9)、=(C4-C2)/C2、=AVERAGE(D2:D19)。该要求适用于合计、百分比、比率、差额等所有计算,使表格在源数据变化时仍能重算。

财务模型相关规范:

  • 配色标准:蓝色(RGB 0,0,255)为硬编码输入及用户会按情景修改的数字;黑色(0,0,0)为所有公式和计算;绿色(0,128,0)为同一工作簿内其他工作表的链接;红色(255,0,0)为指向其他文件的外部链接;黄色背景(255,255,0)为需注意的关键假设或待更新单元格。
  • 数字格式:年份用文本字符串(如 "2024");货币使用 $#,##0 格式并在表头标注单位(如 "Revenue ($mm)");零值通过数字格式显示为 "-"(包括百分比);百分比默认 0.0% 一位小数;估值倍数(EV/EBITDA、P/E)格式为 0.0x;负数使用括号 (123) 而非 -123。
  • 假设放置:所有假设(增长率、利润率、倍数等)放在独立假设单元格,公式中用单元格引用替代硬编码值,例如用 =B5*(1+$B$6) 而非 =B5*1.05。
  • 硬编码说明:在单元格内注释或旁注来源,格式为 "Source: [系统/文档], [日期], [具体引用], [URL]"。

使用方式

创建或修改文件时,若包含公式,必须运行重算脚本:

python scripts/recalc.py <excel_file> [timeout_seconds]

示例:python scripts/recalc.py output.xlsx 30

脚本会自动配置 LibreOffice 宏(首次运行,含受 Unix socket 限制的沙箱环境,由 scripts/office/soffice.py 处理)、重算所有工作表公式、扫描全部单元格的错误,并返回含错误位置与数量的 JSON。若返回状态为 errors_found,需查看 error_summary 定位并修复后再次重算。返回示例字段包括 status、total_errors、total_formulas 及 error_summary(按 #REF! 等类型列出 count 与 locations)。

公式验证要点:先用 2–3 个样本引用验证取值;确认列映射(如第 64 列是 BL 而非 BK);注意 Excel 行从 1 开始(DataFrame 第 5 行对应 Excel 第 6 行);检查 NaN、最右侧列(FY 数据常在 50 列以后)、多重匹配、除零和错误引用;跨表引用使用 Sheet1!A1 格式;先小范围测试公式再推广。

库选择建议:pandas 适合数据分析、批量操作和简单数据导出;openpyxl 适合复杂格式、公式和 Excel 专有功能。openpyxl 的单元格索引从 1 开始;可用 data_only=True 读取计算值,但以此模式打开并保存会用值永久替换公式;大文件可用 read_only=True 或 write_only=True。pandas 可指定 dtype、usecols 和 parse_dates 以处理类型、列选择和日期。

交付要求

  • 所有 Excel 文件使用统一、专业的字体(如 Arial、Times New Roman),除非用户另有指示。
  • 每个模型交付时必须零公式错误(#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?)。
  • 更新模板时,必须研究并完全匹配现有格式、样式与约定,不得把标准化格式强加于已有既定模式的文件;现有模板约定始终覆盖上述指南。
  • 为复杂公式或重要假设添加单元格注释,记录硬编码值的数据来源,并为关键计算与模型区块添加说明。

适用场景

新建 Excel 表格、修改带既定格式的现有模板、财务建模、数据清洗与统计、批量数据导出,以及需要对公式进行重算与错误检查的表格任务。

限制

  • 公式值需要依赖 LibreOffice 重算,openpyxl 本身只保留公式字符串而不求值。
  • 以 data_only=True 加载并保存会永久丢失公式。
  • 该技能的安装方式、收费模式与运行平台要求暂未提供。