Microsoft Excel
Service domainSPREADSHEETS
Arcade Optimized
Arcade.dev LLM tools for Microsoft Excel
10tools
Microsoft Excel toolkit connects Arcade to Microsoft Excel via the Microsoft Graph API, enabling agents to read, write, audit, and collaborate on .xlsx workbooks stored in OneDrive for Business.
Capabilities
- Workbook discovery & metadata — search OneDrive for workbooks by keyword or folder, retrieve full workbook structure (worksheets, named ranges, tables, charts, protection state, used-range extents), and identify the current user's environment.
- Reading & analysis — read worksheet ranges with pagination, column projection, row filtering, CSV/TSV export, and per-cell annotations (formulas, types, number formats, fill/font/borders); aggregate data by grouping rows with sum, average, count, min, or max.
- Writing & editing — create new workbooks or edit existing ones with a rich operation set: write/clear cells, format cells, resize rows/columns, sort, manage tables and charts, rename/add/protect worksheets, manage named ranges, and recalculate.
- Data quality — scan a single worksheet or an entire workbook for formula errors, type outliers, inconsistent columns, accidental duplicates, and blank cells, with severity-ordered results.
- File upload — upload a complete
.xlsxfile byte-for-byte into OneDrive (resumable for large files), avoiding the need to rebuild complex files cell-by-cell. - Comments & collaboration — list comment threads (or replies on a specific thread) and post plain-text replies to existing comment threads.
OAuth
This toolkit uses OAuth 2.0 delegated authorization via Microsoft. Arcade handles the OAuth flow automatically. See the Microsoft auth provider docs for setup details.
Available tools(10)
10 of 10 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
Summarize a worksheet by grouping rows and computing per-group aggregates in one call.
Use this instead of reading and paginating raw rows when you need totals, averages, counts,
or min/max broken down by one or more columns (e.g. revenue by region). Columns can be
referenced by letter (group_by) or by header name (group_by_headers) — use whichever is
more convenient. Groups are returned in first-seen order and capped by ``limit``.
Always check each aggregate's ``numeric_count`` field: non-numeric and formula-error cells
are silently skipped for sum/average/min/max, so a clean-looking total may exclude rows —
the ``warnings`` list will name every column and group where this occurred. | |||
Create a new .xlsx workbook or edit an existing one in OneDrive for Business.
Omit `item_id` to create (an empty workbook is created from `filename`, then the
operations are applied); provide `item_id` to edit. To create a populated workbook, pass
`filename` plus set_values operations; name the target tab via `worksheet` (or reference
one consistent sheet name in the operations) and the new workbook's initial sheet is
renamed to match. For a finished file with formatting/charts intact, upload the bytes
instead of rebuilding cell-by-cell.
Each entry in `operations` selects a behavior via its `type`: write/clear cells, format
cells (font, fill, borders, alignment, wrap, row height), size rows and columns,
sort, add/restyle tables (style, totals, banding, filter), add/move/restyle charts (anchor
cell, size, title, legend, axis titles), manage worksheets and named ranges, protect a
sheet, and recalculate. See the `operations` parameter for the per-type fields. | |||
Get a workbook's structure: worksheets, named ranges, and optionally extents and objects.
Call this first when exploring an unfamiliar workbook: it surfaces hidden worksheets,
workbook-scoped named ranges, tables, charts, and (with the flags) used ranges, protection
state, and worksheet-local named ranges, so you can target reads precisely and avoid
mistaking a stale dashboard sheet for the source data. Use `include_used_ranges` to learn
where data lives before reading, and `include_objects` to enumerate tables and charts. Both
add a per-worksheet fan-out, so leave them off for a quick worksheet listing. | |||
List a workbook's comments, or the replies on a specific comment thread.
Provide a comment ID to retrieve that thread's replies instead of the top-level comments. | |||
Read a worksheet range with the detail you choose, with guardrails for large sheets.
Request `annotations` for formulas, cell types, number formats, or the range's
fill/font/borders; `filter_column` + `filter_contains` to keep matching rows; `columns` to
project a subset; `export` for csv/tsv. Reads are bounded to the used range and capped by a
row limit and cell budget, paginating via `next_range` rather than returning a whole large
sheet at once.
Set `row_format="records"` (with `has_header=true`) to get a `record` dict on each data
row, keying cell values by the header row (the top row of the worksheet's used range) —
useful when agents need to map values to named columns without tracking positional indices.
The header is carried across pages, so paginated reads via `next_range` stay correctly
keyed. Each row still includes `values`.
To verify formulas, types, or number patterns in the returned cells, pass `annotations`
(e.g. `["formulas", "types"]`); annotation values land under `annotations` keyed by A1
address alongside the displayed values. | |||
Post a plain-text reply to an existing comment thread on a workbook.
The reply is appended to the end of the thread. | |||
Scan a worksheet (or the whole workbook) for data-quality problems as a structured list.
Each issue carries a ``severity`` field (``"high"``, ``"medium"``, or ``"low"``) and the
list is ordered high → low before any truncation cap is applied, so critical findings are
never dropped in favour of lower-priority ones.
By default the scan is sheet-scoped (the named worksheet, or the first sheet when
``worksheet`` is omitted). Pass ``worksheet='*'`` for a workbook-wide audit: every sheet
is scanned in one call and each issue carries its own ``worksheet`` field.
Detects formula-error cells (``severity="high"``), type outliers within a column —
a column mostly one type with a few cells of another — (``severity="medium"``),
inconsistent_column for a column that mixes cell types without a strong majority
(``severity="medium"``), accidental duplicate values in mostly-unique columns
(``severity="medium"``), and blank cells inside an otherwise-populated region
(``severity="low"``). Categorical columns (where repetition is expected) are not flagged
as duplicates, and the header row is excluded from type-outlier and duplicate checks.
A clean sheet returns an empty issues list. Detection is deterministic.
Results are capped; when the cap is reached ``truncated`` is True and a warning is added.
Merged cells are a known limitation: Microsoft Graph reports only the merge anchor as
populated and every covered cell as empty, so cells hidden under a merge may be flagged as
blanks. A worksheet cannot be scanned when its used range exceeds an internal cell limit
(this tool takes no range argument): a single-sheet scan raises an error asking you to
reduce the data, while a whole-workbook scan skips the oversized sheet and names it in a
warning so the rest of the workbook is still scanned. | |||
Find Excel workbooks in OneDrive by keyword or folder, returning their item_ids.
Provide `query` to search the whole drive by name/content, or leave it empty and pass
`parent_folder_id` to list one folder; only .xlsx files are returned. Use a returned
`item_id` to read, edit, scan, or comment on a workbook you did not create this session. | |||
Upload a complete .xlsx file into OneDrive for Business, preserving it byte-for-byte.
Use this instead of rebuilding a finished file cell-by-cell. Large files are uploaded
via a resumable upload session automatically. | |||
Get information about the current user and their Microsoft Excel environment. |
Get Building
Last updated on