Skip to main content
Microsoft Excel logo

Overview

Add Microsoft Excel to any ModuleX agent or workflow. Read, write, and manage Excel workbooks stored in OneDrive via the Microsoft Graph REST API (graph.microsoft.com/v1.0).
Categories: Productivity & Collaboration · Spreadsheets · Auth: Microsoft OAuth 2.0 · Actions: 9

Authentication

Microsoft OAuth 2.0

Connect to Microsoft Excel via Microsoft Identity Platform OAuth (recommended). Requires consent to access OneDrive files.

Required Credentials

FieldDescriptionRequiredFormat
Client IDMicrosoft Entra ID (Azure AD) application Client ID.Yes00000000-0000-0000-0000-000000000000
Client SecretMicrosoft Entra ID application Client Secret value.Yesxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

OAuth Configuration

  • Authorization URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
  • Token URL: https://login.microsoftonline.com/common/oauth2/v2.0/token
  • Scopes: Files.ReadWrite, User.Read, offline_access

Available Actions

Parameters

sheet_id
string
required
Drive item ID of the workbook (the spreadsheet file) in OneDrive.
values
array
required
Two-dimensional array of unformatted row values, e.g. [[1, 2, 3], [4, 5, 6]]. Each inner array is one row.
table_id
string
ID of the workbook table to append to. Provide either table_id or table_name.
table_name
string
Name of the workbook table (set in the Table Design tab). Used when table_id is not available, e.g. for personal accounts.

Response

{
  "$defs": {
    "TableRow": {
      "additionalProperties": false,
      "description": "One Microsoft Graph workbookTableRow returned by table operations.",
      "properties": {
        "index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Index"
        },
        "values": {
          "items": {
            "items": {},
            "type": "array"
          },
          "title": "Values",
          "type": "array"
        }
      },
      "title": "TableRow",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "row": {
      "anyOf": [
        {
          "$ref": "#/$defs/TableRow"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "AddAWorksheetTablerowOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
worksheet
string
required
Name of the worksheet to append the row to.
values
array
required
Array of cell values for the new row, e.g. [1, 2, 3]. Each item is one cell.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "values": {
      "items": {
        "items": {},
        "type": "array"
      },
      "title": "Values",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "AddRowOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
worksheet
string
required
Name of the worksheet to search.
column
string
required
Column letter to search, e.g. ‘A’.
value
string
required
Value to search for. Numeric strings will also be matched as numbers.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "found": {
      "default": false,
      "title": "Found",
      "type": "boolean"
    },
    "row_number": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Row Number"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "values": {
      "items": {
        "items": {},
        "type": "array"
      },
      "title": "Values",
      "type": "array"
    },
    "column_values": {
      "items": {},
      "title": "Column Values",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "FindRowOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
worksheet
string
required
Name of the worksheet to read.
columns
array
required
Array of column letters to retrieve, e.g. [‘A’, ‘C’].

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "values": {
      "additionalProperties": {
        "items": {},
        "type": "array"
      },
      "title": "Values",
      "type": "object"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetColumnsOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
worksheet
string
required
Name of the worksheet to read.
range
string
Range within the worksheet, e.g. ‘A1:C4’. If omitted, the entire used range is returned.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "row_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Row Count"
    },
    "column_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Column Count"
    },
    "values": {
      "items": {
        "items": {},
        "type": "array"
      },
      "title": "Values",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetSpreadsheetOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
table_id
string
required
ID of the workbook table whose rows you want.

Response

{
  "$defs": {
    "TableRow": {
      "additionalProperties": false,
      "description": "One Microsoft Graph workbookTableRow returned by table operations.",
      "properties": {
        "index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Index"
        },
        "values": {
          "items": {
            "items": {},
            "type": "array"
          },
          "title": "Values",
          "type": "array"
        }
      },
      "title": "TableRow",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "rows": {
      "items": {
        "$ref": "#/$defs/TableRow"
      },
      "title": "Rows",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetTableRowsOutput",
  "type": "object"
}

Parameters

max_pages
integer
Maximum number of batch pages to fetch (1-500). Default 50.

Response

{
  "$defs": {
    "FolderOption": {
      "additionalProperties": false,
      "description": "One folder option returned by list_folder_id_options.",
      "properties": {
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Label"
        }
      },
      "title": "FolderOption",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "options": {
      "items": {
        "$ref": "#/$defs/FolderOption"
      },
      "title": "Options",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListFolderIdOptionsOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
worksheet
string
required
Name of the worksheet containing the cell.
cell
string
required
Cell address to update, e.g. ‘A1’.
value
string
required
Value to write to the cell.

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "values": {
      "items": {
        "items": {},
        "type": "array"
      },
      "title": "Values",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "UpdateCellOutput",
  "type": "object"
}

Parameters

sheet_id
string
required
Drive item ID of the workbook in OneDrive.
table_id
string
required
ID of the workbook table.
row_id
integer
required
Zero-based index of the row to update.
values
array
required
Array of cell values for the updated row, e.g. [1, 2, 3]. Each item is one cell.

Response

{
  "$defs": {
    "TableRow": {
      "additionalProperties": false,
      "description": "One Microsoft Graph workbookTableRow returned by table operations.",
      "properties": {
        "index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Index"
        },
        "values": {
          "items": {
            "items": {},
            "type": "array"
          },
          "title": "Values",
          "type": "array"
        }
      },
      "title": "TableRow",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "row": {
      "anyOf": [
        {
          "$ref": "#/$defs/TableRow"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "UpdateWorksheetTablerowOutput",
  "type": "object"
}

Limits & Quotas

  • Microsoft Graph throttling: Graph applies per-app and per-user throttling. Excessive requests return HTTP 429 with a Retry-After header. See https://learn.microsoft.com/en-us/graph/throttling for current limits.
  • Workbook session limits: Excel workbook APIs apply additional per-workbook session throttling; consider batching writes via add_a_worksheet_tablerow rather than per-cell update_cell calls when possible.
  • Table updates (update_worksheet_tablerow): work or school Microsoft accounts only. Personal accounts cannot enumerate or update workbook tables.
  • Error model: non-2xx responses and timeouts are caught and returned as success=False + error rather than raising. Plan for retries on the agent side based on the error string.

Cal.com

Canva

ConvertAPI