gws-mcp__sheets_format_table
Make a spreadsheet table readable in one call: column widths, wrapped and top-aligned cells, a styled and frozen header row, and hairline borders. This is the pass to run on ANY sheet a person is going to open. Values written through sheets_update and sheets_append carry no formatting at all, and the untouched default is columns 100px wide with every long cell truncated to a slit, so a sheet with entirely correct data is routinely unreadable and the reader never learns there was more text. Applies everything as one atomic batch. Use sheets_format_range for specific styling on top, or instead of this when you do not want the whole opinionated pass.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"spreadsheet_id": "<spreadsheet_id>",
"range": "<range>"
},
"name": "gws-mcp__sheets_format_table"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wrap | No | Default true: wrap and top-align the body so rows grow to fit their content. Row heights are deliberately never set, because a fixed height overrides auto-fit and re-clips the text wrapping just unclipped. | |
| range | Yes | The table: a bare tab name for the whole tab, or A1 notation like "TabName!A1:E60" naming a tab the spreadsheet actually has. Include the header row. | |
| banded | No | Default false. Tint alternating body rows. | |
| account | No | Optional email address of the connected account to use (e.g. 'user@gmail.com'). If omitted, the default account is used. | |
| trim_grid | No | Default false. DELETES the rows and columns outside the range, which is what makes a sheet look authored rather than dumped. Destructive and opt-in, and it needs a fully bounded range so there is an end to trim from. | |
| header_rows | No | How many rows at the top of the range are headers. Default 1. Use 0 for a table with no header, which skips both the header styling and the freeze. | |
| column_widths | No | Pixel widths, left to right, e.g. [250, 400, 400]. Columns you do not name get default_width. This is the single highest-value change on any sheet with prose in it. | |
| default_width | No | Width for columns not named in column_widths. Default 200. | |
| freeze_header | No | Default true: keep the header rows visible while scrolling. Only rows are ever frozen, never columns, because a frozen column makes merging across it illegal and would take an entire later batch down with it. | |
| spreadsheet_id | Yes | The spreadsheet ID |