用途
xlsx 技能用于创建、编辑和分析 .xlsx 电子表格文件。当用户需要处理 Excel 文件时,该技能提供相应工具与工作流,覆盖公式、格式、数据分析与可视化等需求。
主要能力
- 使用 pandas 进行数据分析、可视化与基础操作,例如读取工作表、预览数据、查看列信息与统计信息、写出 Excel。
- 使用 openpyxl 创建新工作簿、添加数据与公式、设置字体/填充/对齐/列宽等格式,以及编辑现有文件(修改单元格、插入行、删除列、新增工作表)。
- 通过 recalc.py 脚本调用 LibreOffice 重算公式,并扫描所有单元格中的 Excel 错误(如 #REF!、#DIV/0!、#VALUE!、#N/A、#NAME?),返回包含错误位置与数量的 JSON。
使用方式
- 读取与分析:使用 pandas 的 read_excel 读取文件,sheet_name=None 可读取全部工作表为字典;使用 head、info、describe 进行分析;使用 to_excel 写出。
- 创建文件:使用 openpyxl 的 Workbook,写入单元格与公式,设置样式与列宽后保存。
- 编辑文件:使用 load_workbook 加载现有文件,按工作表名访问,修改单元格、插入行、删除列、创建新工作表后保存。
- 重算公式:运行 python recalc.py <excel_file> [timeout_seconds],脚本首次运行会自动配置 LibreOffice 宏,重算所有工作表公式并扫描错误,返回 JSON。
- 工具选择:pandas 适合数据分析、批量操作与简单数据导出;openpyxl 适合复杂格式、公式与 Excel 特有功能。
适用场景
- 数据分析与可视化、基础表格操作。
- 创建或更新 Excel 模板,需严格匹配既有格式、样式与约定。
- 财务模型构建,需遵循配色与数字格式标准。
- 需要公式动态可重算、并确保零公式错误的表格交付。
限制与要求
- 所有 Excel 文件必须零公式错误。
- 更新模板时必须研究并精确匹配既有格式、样式与约定,不得强加标准化格式;既有模板约定始终优先于指南。
- 必须使用 Excel 公式而非在 Python 中计算后硬编码值,以保证表格可随源数据变化重算。
- 使用公式时必须用 recalc.py 重算;openpyxl 创建或修改的文件中公式仅为字符串,不含计算值。
- 使用 data_only=True 打开并保存会以值替换公式,导致公式永久丢失。
- 大文件可使用 read_only=True 读取或 write_only=True 写入。
- 财务模型配色标准(除非用户或既有模板另有说明):蓝色文本(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]"、"Source: Bloomberg Terminal, 8/15/2025, AAPL US Equity"。
- 公式验证清单:测试 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(按错误类型列出 count 与 locations)。
- 代码风格:生成 Excel 操作的 Python 代码时,编写简洁代码,避免不必要注释、冗长变量名与冗余操作、不必要的 print 语句;Excel 文件本身应为复杂公式或重要假设添加单元格注释、记录硬编码值的数据来源、为关键计算与模型部分添加说明。
- 平台:recalc.py 脚本在 Linux 与 macOS 上均可运行。