microsoft-excel
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDrive live Excel workbooks via the Microsoft Graph workbook API with
. The user's OAuth bearer token is in ; every
call needs . Base URL:
. The workbook API operates on a drive item
(an .xlsx in OneDrive/SharePoint), so you need its .
curl + jq$MICROSOFT_EXCEL_TOKENAuthorization: Bearer $MICROSOFT_EXCEL_TOKENhttps://graph.microsoft.com/v1.0ITEM_IDFailures are — show verbatim. =
token expired (re-install). on a write = the user granted read-only.
{"error":{"code","message"}}message401403bash
G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_EXCEL_TOKEN"通过Microsoft Graph workbook API,使用操作在线Excel工作簿。用户的OAuth承载令牌存储在中;每次调用都需要携带请求头。基础URL为:。工作簿API针对驱动器项(OneDrive/SharePoint中的.xlsx文件)进行操作,因此你需要获取其。
curl + jq$MICROSOFT_EXCEL_TOKENAuthorization: Bearer $MICROSOFT_EXCEL_TOKENhttps://graph.microsoft.com/v1.0ITEM_ID错误响应格式为 —— 需原样展示字段内容。表示令牌过期(需重新安装)。写入操作返回表示用户仅被授予只读权限。
{"error":{"code","message"}}message401403bash
G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_EXCEL_TOKEN"Find the workbook by name (then take .id as ITEM_ID)
按名称查找工作簿(然后取.id作为ITEM_ID)
curl -sS -H "$AUTH" "$G/me/drive/root/search(q='budget.xlsx')"
| jq '.value[] | {id, name, webUrl}'
| jq '.value[] | {id, name, webUrl}'
curl -sS -H "$AUTH" "$G/me/drive/root/search(q='budget.xlsx')"
| jq '.value[] | {id, name, webUrl}'
| jq '.value[] | {id, name, webUrl}'
Worksheets in the workbook
获取工作簿中的工作表
curl -sS -H "$AUTH" "$G/me/drive/items/ITEM_ID/workbook/worksheets"
| jq '.value[] | {id, name, position}'
| jq '.value[] | {id, name, position}'
undefinedcurl -sS -H "$AUTH" "$G/me/drive/items/ITEM_ID/workbook/worksheets"
| jq '.value[] | {id, name, position}'
| jq '.value[] | {id, name, position}'
undefinedRead & write ranges
读取与写入单元格区域
bash
ITEM="ITEM_ID"; WS="Sheet1"bash
ITEM="ITEM_ID"; WS="Sheet1"Used range (values + formulas + formats)
已使用区域(包含值、公式和格式)
curl -sS -H "$AUTH"
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/usedRange"
| jq '{address, values: .values}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/usedRange"
| jq '{address, values: .values}'
curl -sS -H "$AUTH"
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/usedRange"
| jq '{address, values: .values}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/usedRange"
| jq '{address, values: .values}'
Read a specific range
读取指定区域
curl -sS -H "$AUTH"
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A1:C5')" | jq '.values'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A1:C5')" | jq '.values'
curl -sS -H "$AUTH"
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A1:C5')" | jq '.values'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A1:C5')" | jq '.values'
Update a range (confirm first). values is a 2-D array matching the address shape.
更新指定区域(请先确认)。values是与目标区域形状匹配的二维数组。
curl -sS -X PATCH -H "$AUTH" -H "Content-Type: application/json"
-d '{"values":[["Q3",1200],["Q4",1580]]}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A2:B3')" | jq '.address'
-d '{"values":[["Q3",1200],["Q4",1580]]}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A2:B3')" | jq '.address'
undefinedcurl -sS -X PATCH -H "$AUTH" -H "Content-Type: application/json"
-d '{"values":[["Q3",1200],["Q4",1580]]}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A2:B3')" | jq '.address'
-d '{"values":[["Q3",1200],["Q4",1580]]}'
"$G/me/drive/items/$ITEM/workbook/worksheets/$WS/range(address='A2:B3')" | jq '.address'
undefinedAppend a row to a table
向表格追加行
bash
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"values":[["2026-06-21","Acme",4200]]}' \
"$G/me/drive/items/$ITEM/workbook/tables/Table1/rows/add" | jq '.index'bash
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"values":[["2026-06-21","Acme",4200]]}' \
"$G/me/drive/items/$ITEM/workbook/tables/Table1/rows/add" | jq '.index'Gotchas
注意事项
- This is for cloud workbooks (OneDrive/SharePoint). A local .xlsx the user uploaded into chat is a different job (parse the file directly), not this skill.
- Range is a string like
addressor justSheet1!A1:C5when scoped to a worksheet;A1:C5must be a 2-D array matching its dimensions.values - For long-running edits Graph supports a workbook session header
(); for a few cells the default sessionless mode is fine.
workbook-session-id
- 此功能仅适用于云端工作簿(OneDrive/SharePoint)。用户上传到聊天中的本地.xlsx文件属于另一种场景(需直接解析文件),不适用此技能。
- 单元格区域是类似
address的字符串,或在指定工作表范围内仅使用Sheet1!A1:C5;A1:C5必须是与区域维度匹配的二维数组。values - 对于长时间运行的编辑操作,Graph支持工作簿会话请求头();若仅编辑少量单元格,默认的无会话模式即可满足需求。
workbook-session-id