SuperAPI AI 工具集

xlsx

办公与效率

查看项目

更新于 10-16 06:00

技能介绍

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

一、用途与总体要求 技能处理用户对 .xlsx 文件的创建、编辑、分析与可视化请求,覆盖公式、格式、数据分析等。重要前提:假定环境已安装 LibreOffice,用于通过 recalc.py 脚本重新计算公式值,该脚本首次运行会自动配置 LibreOffice。所有 Excel 文件必须零公式错误,不能出现 #REF!、#DIV/0!、#VALUE!、#N/A、#NAME? 等错误。更新既有模板时,必须研究并精确匹配其格式、样式与约定,不得把标准化格式强加于已有固定模式的文件;既有模板约定始终优先于本指南。

二、财务模型规范 颜色编码(除非用户或既有模板另有说明):蓝色文字(RGB 0,0,255)表示硬编码输入及用户会随情景更改的数字;黑色文字(0,0,0)表示所有公式与计算;绿色文字(0,128,0)表示同一工作簿内其他工作表的链接;红色文字(255,0,0)表示指向其他文件的外部链接;黄色背景(255,255,0)表示需要注意的关键假设或待更新单元格。 数字格式:年份按文本字符串格式(如 “2024”,不是 “2,024”);货币使用 $#,##0,并始终在表头标明单位(如 “Revenue ($mm)”);零值通过数字格式显示为 “-”,包括百分比(如 “$#,##0;($#,##0);-”);百分比默认 0.0%(一位小数);估值倍数(EV/EBITDA、P/E)格式为 0.0x;负数使用括号 (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]”“Source: Bloomberg Terminal, 8/15/2025, AAPL US Equity” 等。

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

四、Excel 文件工作流 关键原则:始终使用 Excel 公式,而不是在 Python 中算好再硬编码,以保证表格可动态更新。错误示例是把求和、增长率、平均值的结果直接写入单元格;正确做法是写入 '=SUM(B2:B9)'、'=(C4-C2)/C2'、'=AVERAGE(D2:D19)' 等公式。常用流程:选择工具(数据用 pandas,公式/格式用 openpyxl)→ 创建或加载 → 修改数据、公式与格式 → 保存 → 使用公式时强制运行 python recalc.py output.xlsx 重新计算 → 校验并修正错误,脚本返回 JSON 错误详情,若 status 为 errors_found 则查看 error_summary 中的错误类型与位置,修复后再次计算。常见需修复错误包括 #REF!(无效引用)、#DIV/0!(除零)、#VALUE!(数据类型错误)、#NAME?(无法识别的公式名)。

创建新文件示例:from openpyxl import Workbook,配合 Font、PatternFill、Alignment;可写单元格值、公式(sheet['B2'] = '=SUM(A1:A10)')、字体、填充、对齐与列宽,最后 wb.save('output.xlsx')。编辑既有文件使用 load_workbook 以保留公式与格式,可遍历 wb.sheetnames、修改单元格、insert_rows、delete_cols、create_sheet,再保存。openpyxl 创建或修改后的公式只是字符串、不含计算值,需用 recalc.py 重算:python recalc.py <excel_file> [timeout_seconds],例如 python recalc.py output.xlsx 30;脚本会重算所有工作表公式、扫描所有单元格的 Excel 错误,并返回含错误位置与数量的 JSON,支持 Linux 与 macOS。

五、公式校验清单 基础验证:先测试 2-3 个样本引用确认取值正确再搭建完整模型;确认 Excel 列映射正确(如第 64 列是 BL 而非 BK);注意行偏移,Excel 行从 1 开始(DataFrame 第 5 行对应 Excel 第 6 行)。常见陷阱:用 pd.notna() 处理 NaN;注意 FY 数据常在 50 列以后的远右侧列;搜索所有匹配而非只取第一个;公式使用除法前检查分母避免除零;核对引用避免 #REF!;跨表引用使用正确格式(Sheet1!A1)。测试策略:先在小范围 2-3 个单元格测试再推广;验证公式引用的单元格都存在;测试零、负数与超大值等边界情况。

recalc.py 输出结构示例:{"status": "success" 或 "errors_found","total_errors","total_formulas","error_summary": {"#REF!": {"count": 2, "locations": ["Sheet1!B5", "Sheet1!C10"]}}}。

六、库选择与注意事项 pandas 最适合数据分析、批量操作与简单数据导出;openpyxl 最适合复杂格式、公式与 Excel 专有功能。openpyxl 单元格索引从 1 开始(row=1, column=1 对应 A1);读取计算值可用 load_workbook('file.xlsx', data_only=True),但警告:以 data_only=True 打开并保存会把公式替换为值并永久丢失公式;大文件可用 read_only=True 读取或 write_only=True 写入;公式会被保留但不求值,需用 recalc.py 更新。pandas 方面:用 dtype 指定类型避免推断问题(如 dtype={'id': str});大文件用 usecols 只读特定列;用 parse_dates 正确处理日期。

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

八、适用场景与限制 适用于创建、编辑、分析 .xlsx 文件,尤其是财务模型与需要保留模板约定的表格。限制与前提:公式重算依赖 LibreOffice 与 recalc.py;openpyxl 不计算公式,必须重算;使用 data_only=True 保存会丢失公式;资料未提供除上述之外的功能、收费、价格或平台信息。