前言¶
做數據分析或報表的同事,大概都經歷過這樣的場景:手頭有一份 .xlsx,需要加列、改公式、清洗髒數據、再導出成規範格式。交給通用 AI 助手,它往往只能「描述怎麼做」,或者寫一段 Python 腳本讓你自己跑——公式寫死成數值、格式亂套、合併單元格報錯,改完還得人工覈對。
Agent Skill 的出現,把這類領域知識打包成可複用的指令包。今天要介紹的是 Anthropic 官方倉庫裏的 xlsx Skill:它正是 Claude 文檔能力背後處理電子表格的那套實現,也是 Agent 處理結構化表格數據時值得參考的範例。
這是什麼¶
xlsx 是一個面向電子表格任務的 Agent Skill,維護方是 Anthropic,源碼位於 anthropics/skills 倉庫的 skills/xlsx 目錄。
它的定位很直接:只要任務的主要輸入或輸出是表格文件,就應該啓用它。 覆蓋 .xlsx、.xlsm、.xltx、.csv、.tsv 等格式,支持讀取、編輯、新建、格式轉換,以及帶公式的財務模型建模。
需要說明的是:該 Skill 採用 source-available 許可(非 Apache 2.0 開源),與 docx、pdf、pptx 同屬 Anthropic 文檔技能系列,但官方將其公開供開發者學習複雜 Skill 的寫法。
核心功能與亮點¶
1. 按任務選型:openpyxl、pandas、markitdown¶
官方 SKILL.md 把常見操作分成三條路徑:
| 任務 | 推薦工具 |
|---|---|
| 創建/編輯,含公式與格式 | openpyxl |
| 大批量數據讀寫 | pandas(read_excel / to_excel) |
| 快速預覽工作表內容 | markitdown file.xlsx |
openpyxl、pandas、markitdown 在 Skill 運行環境中已預裝,Agent 應直接 import,無需先 pip install;只有導入失敗時才補裝。
2. 公式優先,禁止「寫死結果」¶
這是 xlsx Skill 與普通腳本最大的區別。官方要求:
- 彙總行寫
sheet['B10'] = '=SUM(B2:B9)',而不是把 Python 算出的數字填進去; - 交付前必須跑重算腳本,確保零公式錯誤;
- 用戶指定的表名、列名、公式字面量必須嚴格遵守,不能「優化」成別的算法。
3. 內置公式重算:recalc.py¶
openpyxl 寫入公式時不會緩存計算結果,不經過重算,pandas 和 load_workbook(data_only=True) 讀到的都是 None。Skill 附帶 scripts/recalc.py,調用 LibreOffice 就地重算:
python scripts/recalc.py output.xlsx [timeout_seconds]
腳本會輸出 JSON,包含 status(success 或 errors_found)、total_formulas、total_errors 及錯誤單元格摘要。只要文件裏還有公式,這一步是強制流程。
4. 財務模型規範¶
若用戶未另行指定,Skill 內置一套投行風格的表格約定:藍色輸入、黑色公式、綠色跨表引用、紅色跨文件引用、黃色高亮關鍵假設;貨幣格式、百分比存小數、年份用文本等細節都有明文規定。這對做估值表、預算模型的開發者很實用。
5. 公式兼容性清單¶
Skill 明確列出了 LibreOffice 重算環境的限制:優先使用 Excel 2007 時代的函數(SUMIFS、INDEX、MATCH 等);部分 2007 後函數需加 _xlfn. 前綴;禁止使用 XLOOKUP、FILTER、SORT 等在重算端無法正確展開的函數。這些坑如果沒人提醒,Agent 很容易寫出「看起來對、打開全是 #NAME?」的文件。
安裝與啓用¶
xlsx 基於通用 SKILL.md 格式,可在 Cursor、Claude Code、Claude.ai 等支持 Agent Skills 標準的工具中使用。各平臺啓用方式如下。
Claude Code¶
在 Claude Code 中註冊官方插件市場並安裝文檔技能集:
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
安裝後,直接描述任務即可,例如:「用 xlsx skill 給這份報表加一列同比增長率」。
Claude.ai¶
Anthropic 官方說明:倉庫中的示例 Skill 已對付費計劃用戶開放;也可按 Using skills in Claude 上傳自定義 Skill。
Cursor¶
將 skills/xlsx 整個目錄複製到項目的 .cursor/skills/xlsx/(或全局目錄 ~/.cursor/skills/xlsx/),確保內含 SKILL.md 及 scripts/ 子目錄。Cursor 啓動時會自動發現 Skill;也可在 Agent 對話中輸入 /xlsx 手動調用。
Cursor 還支持從 GitHub 導入 Remote Rule:在 Customize → Rules → Add Rule → Remote Rule (Github) 填入倉庫地址。
Claude API¶
通過 Skills API 上傳或使用預置 Skill,適合集成到自動化流水線。
典型用法示例¶
快速預覽表格¶
markitdown sales_report.xlsx
輸出按 ## SheetName 分段,適合先摸清數據結構;但不含單元格座標,不能據此規劃精確編輯。
讀取含公式的模型(兩次加載)¶
openpyxl 無法在一次加載中同時拿到公式字符串和緩存值,官方推薦:
from openpyxl import load_workbook
# 第一次:讀公式
wb_formula = load_workbook("model.xlsx")
# 第二次:讀緩存值(編輯前務必先 recalc)
wb_values = load_workbook("model.xlsx", data_only=True)
注意:data_only=True 後若保存,會把公式永久替換成字面量,這是常見誤操作。
寫入公式並重算¶
from openpyxl import Workbook
wb = Workbook()
sheet = wb.active
sheet['A1'] = 'Item'
sheet['B1'] = 'Amount'
sheet['B2'] = 100
sheet['B3'] = 200
sheet['B4'] = '=SUM(B2:B3)'
wb.save('output.xlsx')
保存後必須執行:
python scripts/recalc.py output.xlsx
大批量數據處理¶
import pandas as pd
df = pd.read_excel('raw_data.xlsx', sheet_name='Sheet1')
df['total'] = df['qty'] * df['price']
df.to_excel('cleaned.xlsx', index=False)
若輸出文件含公式,仍要走 recalc.py 流程。
適用場景與注意事項¶
適合誰用:
- 需要 Agent 直接產出
.xlsx/.csv文件的開發者或分析師; - 做財務模型、運營報表、數據清洗流水線,且希望公式可審計、可復算的場景;
- 想學習「如何把領域規範寫進 Skill」的 Skill 作者——xlsx 的 SKILL.md 篇幅長、約束細,是高質量參考。
不適合的場景(官方明確排除):
- 主要交付物是 Word、HTML 報告、獨立 Python 腳本或數據庫管道;
- 需要對接 Google Sheets API 的在線協作場景。
使用時要留意的坑:
- 合併單元格只能寫左上角錨點,其餘爲只讀
MergedCell; .xlsm保存時需keep_vba=True,否則宏會丟失;- 跨表引用若表名含空格,公式裏必須加引號:
='Assumptions Inputs'!$B$5; - 編輯已有文件時,應匹配原文件的輸入單元格樣式(顏色/填充),不要動已有公式;
- 含外部文件鏈接的工作簿,openpyxl 重存後鏈接可能斷裂,
recalc.py會拒絕運行。
小結¶
xlsx Skill 的價值,不在於「讓 AI 會讀 CSV」,而在於把電子表格交付的完整工程規範——公式寫法、重算驗證、格式約定、兼容性邊界——寫進了 Agent 可執行的指令裏。對經常和 Excel 打交道的開發者,把它裝進 Cursor 或 Claude Code,意味着描述需求後拿到的是一份能直接交給業務方的文件,而不是需要二次修修補補的半成品。
官方地址:https://github.com/anthropics/skills/tree/main/skills/xlsx