当电子表格文件作为主要输入或输出时使用此技能,即用户想要打开、读取、编辑或修复现有表格的任何任务。
输出要求 : All Excel 文件 : 专业字体
功能概述
输出要求 : All Excel 文件 : 专业字体是一项面向实际任务的技能,主要用于除非用户另有指示, 否则所有可交付的商品使用一致的专业字体(例如Arial, Times New Roman);Zero Fo。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
输出文件要求
所有 Excel 文件
专业字体
- 除非用户另有指示,否则所有交付成果须统一使用专业、一致的字体(例如 Arial、Times New Roman)
零公式错误
- 每个 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")
- 货币:人民币(CNY)使用 ¥#,##0 格式;美元(USD)使用 $#,##0 格式。**表头中必须明确标注单位**(例如 "Revenue (¥万)")
- 零值:通过数字格式将所有零显示为 "-",包括百分比(例如 "¥#,##0;(¥#,##0);-")
- 百分比:默认采用 0.0% 格式(保留一位小数)
- 倍数:估值倍数(如 EV/EBITDA、P/E)统一采用 0.0x 格式
- 负数:统一用括号表示(如 (123)),不可使用减号前缀(如 -123)
公式构建规则
假设值放置位置
- 所有假设参数(增长率、利润率、倍数等)**必须全部置于独立的假设单元格中**
- 公式中应使用单元格引用,**禁止直接硬编码数值**
- 示例:使用 =B5*(1+$B$6),而非 =B5*1.05
公式错误预防
- 逐项核验所有单元格引用是否准确无误
- 检查区域引用是否存在“差一错误”(off-by-one errors)
- 确保所有预测期的公式逻辑完全一致
- 针对边界场景进行测试(如零值、负数输入)
- 确认不存在意外的循环引用
硬编码值的文档要求
- 须在对应单元格旁添加注释(若处于表格末尾,则可在相邻空白列注明)。格式为:
"Source: [System/Document], [Date], [Specific Reference], [URL if applicable]" - 示例:
- "Source: Company 10-K, FY2024, Page 45, Revenue Note, [SEC EDGAR URL]"
- "Source: Company 10-Q, Q2 2025, Exhibit 99.1, [SEC EDGAR URL]"
- "Source: Bloomberg Terminal, 8/15/2025, AAPL US Equity"
- "Source: Wind, 8/20/2025, Consensus Estimates"
XLSX 创建、编辑与分析
概述
用户可能要求你创建、编辑或分析 .xlsx 文件的内容。针对不同任务,你可选用不同的工具与工作流。
重要要求
公式重算必需 LibreOffice:可假定系统已安装 LibreOffice,用于通过 scripts/recalc.py 脚本重算公式值。该脚本在首次运行时会自动完成 LibreOffice 配置。
Windows 本地化适配:本能力已适配 Windows 系统。scripts/office/soffice.py 辅助脚本会在标准 Windows 安装路径中搜索 soffice.exe,并支持读取 SOFFICE_PATH 环境变量。
数据读取与分析
使用 pandas 进行数据分析
对于数据分析、可视化及基础操作,请使用 pandas——它提供强大的数据处理能力:
import pandas as pd
# 读取 Excel
df = pd.read_excel('file.xlsx') # 默认读取首张工作表
all_sheets = pd.read_excel('file.xlsx', sheet_name=None) # 读取全部工作表,返回字典
# 分析数据
df.head() # 预览前几行
df.info() # 列信息概览
df.describe() # 统计摘要
# 写入 Excel
df.to_excel('output.xlsx', index=False)
Excel 文件工作流
关键原则:必须使用公式,禁止硬编码数值
务必使用 Excel 公式,不得在 Python 中预先计算后将结果硬编码写入单元格。此举可确保电子表格保持动态性与可更新性。
错误做法 —— 硬编码计算结果
# 错误:在 Python 中计算并硬编码结果 total = df['Sales'].sum() sheet['B10'] = total # 硬编码写入 5000
正确做法 —— 使用 Excel 公式
# 正确:由 Excel 自动计算求和 sheet['B10'] = '=SUM(B2:B9)'
该原则适用于**所有计算类型**——包括合计、百分比、比率、差值等。当源数据变更时,整个表格应能自动重新计算。
通用工作流
- 选择工具:数据处理用 pandas,公式与格式设置用 openpyxl
- 创建/加载:新建工作簿或加载已有文件
- 修改:增删改数据、公式与格式
- 保存:写入文件
- 重算公式(如使用了公式则为强制步骤):调用
scripts/recalc.py脚本python scripts/recalc.py output.xlsx
- 校验并修复错误:
- 脚本返回包含详细错误信息的 JSON
- 若
status字段为errors_found,请查阅error_summary获取具体错误类型与位置 - 定位并修复问题后,再次执行重算
新建 Excel 文件
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 文件
from openpyxl import load_workbook
wb = load_workbook('existing.xlsx')
sheet = wb.active # 或使用 wb['SheetName'] 指定特定工作表
# 多工作表操作
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
print(f"Sheet: {sheet_name}")
# 修改单元格
sheet['A1'] = 'New Value'
sheet.insert_rows(2) # 在第 2 行位置插入新行
sheet.delete_cols(3) # 删除第 3 列
# 新建工作表
new_sheet = wb.create_sheet('NewSheet')
new_sheet['A1'] = 'Data'
wb.save('modified.xlsx')
公式重算
由 openpyxl 创建或修改的 Excel 文件中,公式仅以字符串形式存储,不包含计算结果。请使用提供的 scripts/recalc.py 脚本执行公式重算:
python scripts/recalc.py[timeout_seconds]
示例:
python scripts/recalc.py output.xlsx 30
该脚本具备以下功能:
- 首次运行时自动配置 LibreOffice 宏环境
- 重算所有工作表中的全部公式
- 扫描所有单元格,识别 Excel 错误(#REF!、#DIV/0! 等)
- 返回含详细错误位置与数量的 JSON 结果
- 兼容 Windows、Linux 和 macOS 系统
公式校验清单
核心校验项
- 抽样验证 2–3 个引用:在构建完整模型前,先确认其引用值准确无误
- 列映射校验:确认 Excel 列编号与字母对应关系(例如第 64 列 = BL,而非 BK)
- 行偏移校验:注意 Excel 行号为 1 起始(DataFrame 第 5 行 = Excel 第 6 行)
常见陷阱
- NaN 值处理:使用
pd.notna()检查空值 - 最右列数据:财年(FY)数据常位于第 50 列之后
- 多重匹配:需搜索全部匹配项,不可仅取首个结果
- 除零风险:在公式中使用除法(
/)前,务必验证分母非零(避免 #DIV/0!) - 错误引用:逐一验证所有单元格引用是否指向目标单元格(避免 #REF!)
- 跨表引用:正确使用格式(如 Sheet1!A1)实现工作表间链接
最佳实践
库选型建议
- pandas:适用于数据分析、批量操作及简单数据导出
- openpyxl:适用于复杂格式设置、公式编写及 Excel 特有功能
openpyxl 使用要点
- 单元格索引基于 1(row=1, column=1 对应 A1 单元格)
- 使用
data_only=True可读取计算结果:load_workbook('file.xlsx', data_only=True) - 警告:若以
data_only=True打开并保存文件,公式将被永久替换为数值,无法恢复 - 处理大文件时:读取可用
read_only=True,写入可用write_only=True
pandas 使用要点
- 显式指定数据类型,避免类型推断异常:
pd.read_excel('file.xlsx', dtype={'id': str}) - 处理大文件时,按需读取特定列:
pd.read_excel('file.xlsx', usecols=['A', 'C', 'E']) - 正确解析日期字段:
pd.read_excel('file.xlsx', parse_dates=['date_column'])
代码风格指南
生成 Excel 相关 Python 代码时,请遵循:
- 编写简洁、精炼的代码,避免冗余注释
- 避免过长的变量名与重复操作
- 避免不必要的 print 输出语句
依赖项
必需的 Python 包:
openpyxl— 支持公式与格式的 .xlsx 文件读写pandas— 数据分析与批量操作xlrd— 读取旧版 .xls 文件(可选)
外部依赖:
- LibreOffice — 通过
scripts/recalc.py实现公式重算- 下载地址:https://www.libreoffice.org/download/download-libreoffice/
- 或设置
SOFFICE_PATH环境变量,指向你的 soffice.exe 路径
本地化说明(Windows)
本能力基于 Anthropic 官方 xlsx 技能(https://github.com/anthropics/skills)进行本地化适配。主要调整如下:
- 从
soffice.py中移除了 Linux 专用的 AF_UNIX socket shim(LD_PRELOAD) - 新增 Windows 下 LibreOffice 路径自动检测(如
C:\Program Files\LibreOffice\program\soffice.exe) - 新增对
SOFFICE_PATH环境变量的支持 - 货币默认单位调整为 ¥(CNY),适配中国市场场景
- 宏目录在 Windows 下使用
%APPDATA%\LibreOffice\4\user\basic\Standard
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.4万人学习
共6课时 | 54.7万人学习
