Excel Online (Microsoft Graph)
Excel automation via Microsoft 365.
Environment
export MICROSOFT_ACCESS_TOKEN="xxxxxxxxxx"
List Workbooks in OneDrive
curl "https://graph.microsoft.com/v1.0/me/drive/root/search(q='.xlsx')" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN"
Get Worksheets
curl "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/worksheets" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN"
Read Range
curl "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/worksheets/{sheet-name}/range(address='A1:D10')" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN"
Write to Range
curl -X PATCH "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/worksheets/{sheet-name}/range(address='A1:B2')" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"values": [["Name", "Value"], ["Test", 123]]}'
Add Worksheet
curl -X POST "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/worksheets" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "NewSheet"}'
Create Table
curl -X POST "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/worksheets/{sheet-name}/tables/add" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"address": "A1:C5", "hasHeaders": true}'
Run Formula
curl -X POST "https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/workbook/functions/sum" \
-H "Authorization: Bearer $MICROSOFT_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"values": [[1, 2, 3, 4, 5]]}'