SuperAPI AI 工具集

xlsx

办公与效率

查看项目

更新于 10-16 09:37

技能介绍

该技能用于创建、编辑和分析 .xlsx 文件,覆盖公式、格式设置、数据分析与可视化,适用于 Claude 需要处理电子表格的场景。

用途:创建、编辑或分析 .xlsx 文件内容。不同任务可使用不同工具与工作流。

输出要求

所有 Excel 文件必须做到零公式错误,不允许出现 #REF!、#DIV/0!、#VALUE!、#N/A、#NAME? 等错误。

更新模板时须保留既有模板:研究并精确匹配现有格式、样式与约定,不得将标准化格式强加于已有既定模式的文件的;当用户或既有模板另有规定时,模板约定始终优先于本文指南。

财务模型

颜色编码标准(除非用户或既有模板另有说明):蓝色文本(RGB: 0,0,255)为硬编码输入及用户会随情景更改的数字;黑色文本(RGB: 0,0,0)为所有公式与计算;绿色文本(RGB: 0,128,0)为同一工作簿内其他工作表的链接;红色文本(RGB: 255,0,0)为指向其他文件的外部链接;黄色背景(RGB: 255,255,0)为需要注意的关键假设或需更新的单元格。

数字格式标准:年份格式化为文本字符串(如 “2024” 而非 “2,024”);货币使用 $#,##0 格式,并始终在表头标明单位(如 “Revenue ($mm)”);零值使用数字格式显示为 “-”,包括百分比(如 “$#,##0;($#,##0);-”);百分比默认 0.0% 格式(一位小数);倍数格式化为 0.0x(用于 EV/EBITDA、P/E 等估值倍数);负数使用括号,如 (123) 而非 -123。

公式构建规则:将所有假设(增长率、利润率、倍数等)放在单独的假设单元格中;公式中使用单元格引用而非硬编码值,例如用 =B5*(1+$B$6) 而非 =B5*1.05。防止公式错误:验证所有单元格引用正确;检查区域是否存在差一错误;确保所有预测期公式一致;用边界情况(零值、负数)测试;验证没有意外循环引用。硬编码需附文档:在单元格内或旁(若位于表格末尾)以注释或单元格说明,格式为 “Source: [System/Document], [Date], [Specific Reference], [URL if applicable]”,例如 “Source: Company 10-K, FY2024, Page 45, Revenue Note, [SEC EDGAR URL]”等。

使用方式

读取与分析数据:数据分析、可视化与基础操作可使用 pandas。示例:import pandas as pd;df = pd.read_excel('file.xlsx') 读取第一个工作表;pd.read_excel('file.xlsx', sheet_name=None) 读取所有工作表为字典;df.head()、df.info()、df.describe() 用于预览、列信息与统计;df.to_excel('output.xlsx', index=False) 写出。

创建或编辑文件的关键原则:始终使用 Excel 公式而非在 Python 中计算后硬编码,以保证表格动态可更新。正确做法如 sheet['B10'] = '=SUM(B2:B9)'、sheet['C5'] = '=(C4-C2)/C2'、sheet['D20'] = '=AVERAGE(D2:D19)'。

常见工作流:选择工具(数据用 pandas,公式/格式用 openpyxl)→ 创建或加载(新建工作簿或加载现有文件)→ 修改(增改数据、公式与格式)→ 保存 → 若使用公式则必须重新计算,运行 python recalc.py output.xlsx → 验证并修复错误。脚本返回含错误详情的 JSON;若状态为 errors_found,查看 error_summary 中的错误类型与位置,修复后再次重算。常见需修复错误包括 #REF!(无效单元格引用)、#DIV/0!(除零)、#VALUE!(公式中数据类型错误)、#NAME?(无法识别的公式名)。

创建新文件:使用 openpyxl 的 Workbook,可写入数据、公式(如 sheet['B2'] = '=SUM(A1:A10)')、格式(字体、填充、对齐)与列宽,然后 wb.save('output.xlsx')。

编辑现有文件:使用 load_workbook 保留公式与格式;可按名称访问工作表、遍历 wb.sheetnames、修改单元格、插入行、删除列、创建新工作表,最后保存。

重新计算公式:openpyxl 创建或修改的文件中公式以字符串存在但无计算值,须用 recalc.py 重算,命令为 python recalc.py <excel_file> [timeout_seconds],例如 python recalc.py output.xlsx 30。脚本首次运行会自动配置 LibreOffice 宏,重算所有工作表公式,扫描所有单元格中的 Excel 错误,返回含详细错误位置与数量的 JSON,支持 Linux 与 macOS。

公式验证清单:构建完整模型前先测试 2-3 个样本引用是否正确取值;确认 Excel 列映射(如第 64 列是 BL 而非 BK);注意 Excel 行从 1 开始(DataFrame 第 5 行对应 Excel 第 6 行);用 pd.notna() 检查空值;注意 FY 数据常在 50 列以后;搜索所有匹配项而非仅第一处;使用除法前检查分母以防 #DIV/0!;验证所有引用指向目标单元格以防 #REF!;跨表引用使用正确格式(Sheet1!A1)。测试策略:先在小范围(2-3 个单元格)测试公式,验证公式引用的所有单元格存在,测试零、负数和极大值等边界情况。

recalc.py 输出解读:返回 JSON,包含 status(success 或 errors_found)、total_errors、total_formulas,若发现错误还有 error_summary(如 “#REF!”: {"count": 2, "locations": ["Sheet1!B5", "Sheet1!C10"]})。

最佳实践

库的选择:pandas 最适合数据分析、批量操作与简单数据导出;openpyxl 最适合复杂格式、公式与 Excel 专有功能。

使用 openpyxl 时:单元格索引从 1 开始;用 data_only=True 读取计算值,但注意以该模式打开并保存会用值替换公式并永久丢失公式;大文件读取用 read_only=True、写入用 write_only=True;公式会被保留但不求值,需用 recalc.py 更新值。

使用 pandas 时:指定数据类型避免推断问题(如 dtype={'id': str});大文件只读特定列(usecols=['A', 'C', 'E']);正确处理日期(parse_dates=['date_column'])。

代码风格:生成 Excel 操作的 Python 代码时,写最少、简洁的代码,避免不必要注释、冗长变量名、冗余操作与多余 print;对 Excel 文件本身,为复杂公式或重要假设的单元格添加注释,记录硬编码值的来源,并为关键计算和模型部分添加说明。

限制与前置条件:需要 LibreOffice 用于公式重算(脚本首次运行会自动配置);若以 data_only=True 打开并保存,公式会被值替换并永久丢失;使用公式后必须运行 recalc.py 验证。