Files
openclaw-workspace/skills/api-gateway/references/microsoft-excel.md
2026-04-11 09:45:12 -05:00

175 lines
3.8 KiB
Markdown

# Microsoft Excel Routing Reference
**App name:** `microsoft-excel`
**Base URL proxied:** `graph.microsoft.com`
## API Path Pattern
```
/microsoft-excel/v1.0/me/drive/items/{file-id}/workbook/{resource}
/microsoft-excel/v1.0/me/drive/root:/{path}:/workbook/{resource}
```
## Common Endpoints
### Drive Operations
#### Get Drive Info
```bash
GET /microsoft-excel/v1.0/me/drive
```
#### List Root Files
```bash
GET /microsoft-excel/v1.0/me/drive/root/children
```
#### Search Files
```bash
GET /microsoft-excel/v1.0/me/drive/root/search(q='.xlsx')
```
### Session Management
#### Create Session
```bash
POST /microsoft-excel/v1.0/me/drive/root:/{path}:/workbook/createSession
Content-Type: application/json
{
"persistChanges": true
}
```
### Worksheet Operations
#### List Worksheets
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets
```
#### Create Worksheet
```bash
POST /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets
Content-Type: application/json
{
"name": "NewSheet"
}
```
#### Delete Worksheet
```bash
DELETE /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('{id}')
```
### Range Operations
#### Get Range
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/range(address='A1:B2')
```
#### Update Range
```bash
PATCH /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/range(address='A1:B2')
Content-Type: application/json
{
"values": [
["Value1", "Value2"],
[100, 200]
]
}
```
#### Get Used Range
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/usedRange
```
### Table Operations
#### List Tables
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/tables
```
#### Create Table
```bash
POST /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/tables/add
Content-Type: application/json
{
"address": "A1:C4",
"hasHeaders": true
}
```
#### Get Table Rows
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/tables('Table1')/rows
```
#### Add Table Row
```bash
POST /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/tables('Table1')/rows
Content-Type: application/json
{
"values": [["Data1", "Data2", "Data3"]]
}
```
#### Delete Table Row
```bash
DELETE /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/tables('Table1')/rows/itemAt(index=0)
```
#### Get Table Columns
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/tables('Table1')/columns
```
### Named Items
#### List Named Items
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/names
```
### Charts
#### List Charts
```bash
GET /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/charts
```
#### Add Chart
```bash
POST /microsoft-excel/v1.0/me/drive/root:/workbook.xlsx:/workbook/worksheets('Sheet1')/charts/add
Content-Type: application/json
{
"type": "ColumnClustered",
"sourceData": "A1:C4",
"seriesBy": "Auto"
}
```
## Notes
- Only `.xlsx` files are supported (not legacy `.xls`)
- Use path-based access (`/drive/root:/{path}:`) or ID-based access (`/drive/items/{id}`)
- Table/worksheet IDs with `{` and `}` must be URL-encoded
- Sessions improve performance for multiple operations
- Sessions expire after ~5 minutes (persistent) or ~7 minutes (non-persistent)
- Range addresses use A1 notation
## Resources
- [Microsoft Graph Excel API](https://learn.microsoft.com/en-us/graph/api/resources/excel)
- [Excel Workbook Resource](https://learn.microsoft.com/en-us/graph/api/resources/workbook)
- [Excel Worksheet Resource](https://learn.microsoft.com/en-us/graph/api/resources/worksheet)
- [Excel Range Resource](https://learn.microsoft.com/en-us/graph/api/resources/range)