Microsoft Excel · Arazzo Workflow

Microsoft Excel Discover Workbook Structure

Version 1.0.0

Open a session and inventory a workbook's worksheets, tables, named items, and charts.

1 workflow 5 source APIs 1 provider
View Spec View on GitHub AutomationData AnalysisMicrosoftMicrosoft-365OfficeSpreadsheetsArazzoWorkflows

Provider

microsoft-excel

Workflows

discover-workbook-structure
Inventory the structure of an Excel workbook without modifying it.
Creates a read-only session and collects the worksheets, tables, named ranges, and charts so a caller can decide where to read or write next.
5 steps inputs: itemId, worksheetIdOrName outputs: charts, namedItems, sessionId, tables, worksheets
1
openSession
Open a workbook session with persistChanges false. A read-only session keeps the discovery pass fast and guarantees nothing is written back.
2
listSheets
List every worksheet in the workbook, including position and visibility, so hidden sheets are visible to the caller.
3
listSheetTables
List the structured tables defined on the target worksheet. Tables are the preferred write surface because they carry a header row and grow safely.
4
listWorkbookNames
List workbook-level named items. Named ranges are the stable way to address data that may move as the sheet is edited.
5
listSheetCharts
List the charts already present on the worksheet so a reporting flow does not duplicate a chart that already exists.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Excel Discover Workbook Structure
  summary: Open a session and inventory a workbook's worksheets, tables, named items, and charts.
  description: >-
    The first thing any integration or agent needs against an unfamiliar
    workbook is a map of what is inside it. This workflow opens a non-persisting
    workbook session, then walks the four discovery surfaces the Graph Excel API
    exposes: worksheets, the tables on a chosen worksheet, the workbook-level
    named items, and the charts on the worksheet. Nothing is written. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI.
  version: 1.0.0
sourceDescriptions:
- name: chartsApi
  url: ../openapi/microsoft-excel-charts-api-openapi.yml
  type: openapi
- name: namedItemsApi
  url: ../openapi/microsoft-excel-named-items-api-openapi.yml
  type: openapi
- name: sessionsApi
  url: ../openapi/microsoft-excel-sessions-api-openapi.yml
  type: openapi
- name: tablesApi
  url: ../openapi/microsoft-excel-tables-api-openapi.yml
  type: openapi
- name: worksheetsApi
  url: ../openapi/microsoft-excel-worksheets-api-openapi.yml
  type: openapi
workflows:
- workflowId: discover-workbook-structure
  summary: Inventory the structure of an Excel workbook without modifying it.
  description: >-
    Creates a read-only session and collects the worksheets, tables, named
    ranges, and charts so a caller can decide where to read or write next.
  inputs:
    type: object
    required:
    - itemId
    - worksheetIdOrName
    properties:
      itemId:
        type: string
        description: The drive item id of the workbook file in OneDrive or SharePoint.
      worksheetIdOrName:
        type: string
        description: The worksheet to inspect for tables and charts (e.g. "Sheet1").
  steps:
  - stepId: openSession
    description: >-
      Open a workbook session with persistChanges false. A read-only session
      keeps the discovery pass fast and guarantees nothing is written back.
    operationId: createWorkbookSession
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    requestBody:
      contentType: application/json
      payload:
        persistChanges: false
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      sessionId: $response.body#/id
  - stepId: listSheets
    description: >-
      List every worksheet in the workbook, including position and visibility,
      so hidden sheets are visible to the caller.
    operationId: listWorksheets
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    - name: workbook-session-id
      in: header
      value: $steps.openSession.outputs.sessionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      worksheets: $response.body#/value
      firstWorksheetName: $response.body#/value/0/name
  - stepId: listSheetTables
    description: >-
      List the structured tables defined on the target worksheet. Tables are the
      preferred write surface because they carry a header row and grow safely.
    operationId: listTables
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    - name: worksheet-id-or-name
      in: path
      value: $inputs.worksheetIdOrName
    - name: workbook-session-id
      in: header
      value: $steps.openSession.outputs.sessionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tables: $response.body#/value
      firstTableId: $response.body#/value/0/id
  - stepId: listWorkbookNames
    description: >-
      List workbook-level named items. Named ranges are the stable way to
      address data that may move as the sheet is edited.
    operationId: listNamedItems
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    - name: workbook-session-id
      in: header
      value: $steps.openSession.outputs.sessionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      namedItems: $response.body#/value
  - stepId: listSheetCharts
    description: >-
      List the charts already present on the worksheet so a reporting flow does
      not duplicate a chart that already exists.
    operationId: listCharts
    parameters:
    - name: item-id
      in: path
      value: $inputs.itemId
    - name: worksheet-id-or-name
      in: path
      value: $inputs.worksheetIdOrName
    - name: workbook-session-id
      in: header
      value: $steps.openSession.outputs.sessionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      charts: $response.body#/value
  outputs:
    sessionId: $steps.openSession.outputs.sessionId
    worksheets: $steps.listSheets.outputs.worksheets
    tables: $steps.listSheetTables.outputs.tables
    namedItems: $steps.listWorkbookNames.outputs.namedItems
    charts: $steps.listSheetCharts.outputs.charts

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/microsoft-excel-discover-workbook-structure-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.