用途
xlsx 技能用于创建、编辑和分析 .xlsx 电子表格文件,覆盖公式、格式化、数据分析与可视化等需求。当用户需要处理 Excel 文件时,可依据任务类型选择不同工具与工作流。
主要能力
- 使用 pandas 进行数据分析、可视化和基础操作,例如读取工作表、预览数据、查看列信息与统计信息、写出 Excel。
- 使用 openpyxl 创建新工作簿、编辑现有文件、添加公式、设置字体/填充/对齐、调整列宽、插入或删除行列、创建新工作表。
- 通过 recalc.py 脚本重算公式并扫描所有单元格中的 Excel 错误,返回包含错误位置与数量的 JSON。
- 支持财务模型中的颜色编码标准、数字格式标准与公式构建规则。
使用方式
数据分析与基础操作使用 pandas:
import pandas as pd
df = pd.read_excel('file.xlsx')
all_sheets = pd.read_excel('file.xlsx', sheet_name=None)
df.head()
df.info()
df.describe()
df.to_excel('output.xlsx', index=False)
创建新 Excel 文件使用 openpyxl:
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment
wb = Workbook()
sheet = wb.active
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
sheet.append(['Row', 'of', 'data'])
sheet['B2'] = '=SUM(A1:A10)'
sheet['A1'].font = Font(bold=True, color='FF0000')
sheet['A1'].fill = PatternFill('solid', start_color='FFFF00')
sheet['A1'].alignment = Alignment(horizontal='center')
sheet.column_dimensions['A'].width = 20
wb.save('output.xlsx')
编辑现有 Excel 文件使用 openpyxl:
from openpyxl import load_workbook
wb = load_workbook('existing.xlsx')
sheet = wb.active
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
print(f"Sheet: {sheet_name}")
sheet['A1'] = 'New Value'
sheet.insert_rows(2)
sheet.delete_cols(3)
new_sheet = wb.create_sheet('NewSheet')
new_sheet['A1'] = 'Data'
wb.save('modified.xlsx')
重算公式(使用公式时必做):
python recalc.py output.xlsx
python recalc.py output.xlsx 30
脚本会自动在首次运行时配置 LibreOffice 宏,重算所有工作表中的公式,扫描所有单元格中的 Excel 错误,并返回 JSON 格式的详细错误位置与数量,支持 Linux 和 macOS。
关键规则
- 所有 Excel 文件必须零公式错误(#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?)。
- 更新模板时,必须研究并精确匹配现有格式、样式与约定;已有模板约定始终优先于本指南。
- 始终使用 Excel 公式而非在 Python 中计算后硬编码值,确保表格在源数据变化时可重新计算。
- 所有假设(增长率、利润率、倍数等)放在单独的假设单元格中,公式中使用单元格引用而非硬编码值,例如使用 =B5*(1+$B$6) 而非 =B5*1.05。
- 硬编码值需注明来源,格式为“Source: [System/Document], [Date], [Specific Reference], [URL if applicable]”。
财务模型标准
颜色编码(除非用户或现有模板另有说明):
- 蓝色文字(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% 格式(一位小数)。
- 倍数:估值倍数(EV/EBITDA、P/E)格式化为 0.0x。
- 负数:使用括号 (123) 而非负号 -123。
适用场景
- 财务建模与估值分析。
- 数据整理、批量操作与简单数据导出。
- 报表生成与格式化。
- 需要保留公式动态性的电子表格任务。
限制与注意事项
- 使用公式时,必须使用 recalc.py 重算,因为 openpyxl 创建或修改的文件只包含公式字符串,不含计算值。
- 使用 data_only=True 读取后若保存,公式会被值替换并永久丢失。
- 大文件读取使用 read_only=True,写入使用 write_only=True。
- 公式验证需注意:Excel 列映射(如第 64 列 = BL 而非 BK)、行偏移(DataFrame 第 5 行 = Excel 第 6 行)、NaN 处理、除零检查、跨表引用格式(Sheet1!A1)。
- 公式测试策略:先在 2-3 个单元格上测试,再广泛使用;验证依赖单元格存在;测试零值、负值和极大值等边界情况。
- 生成 Python 代码时保持简洁,避免不必要的注释、冗长变量名和多余 print 语句。
- 关于该技能的具体安装方式、收费情况、支持平台等,资料中暂未提供。