> For the complete documentation index, see [llms.txt](https://captivatehelp.newbluelive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://captivatehelp.newbluelive.com/play-and-update-graphics/chapter-index-1/tables-block-controller.md).

# Tables: Block Controller

Use **Tables: Block** when one graphic needs to show **several records at once** — a leaderboard with the top 10 finishers, a roster card with five players, a schedule showing the next four games. Tables groups the source rows into blocks; each block fills the graphic, then the next block can be shown.

For showing one record at a time (a lower third, a player card), use [Tables: Row](/play-and-update-graphics/chapter-index-1/drive-a-graphic-with-tables-row.md) instead.

## Add a Tables: Block input

Tables: Block works with graphics designed to show multiple records at once. If you’re building the graphic yourself, configure the repeated row layout in the Designer first — see [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md).

1. Add or select a graphic designed to show multiple records, and in its **Data Controller** column choose **Productivity → Tables: Block → New Input**. Captivate adds an instance named `Tables: Block.Table 1` (or `… 2`, `… 3`, etc. for additional inputs).
2. The Tables panel opens to the **Load New Data** screen.

You can also create the input on its own from **Add new item** in the playout window.

## Load data

You can load data three ways. Captivate also keeps a list of recent sources:

* **Browse** — pick a local file. Supported types: CSV, Excel (`.xlsx`), JSON, XML, plain text, and SQLite database (`.db`/`.db3`).
* **Create CSV** — start a new CSV file from inside Captivate.
* **Open URL** — fetch a web URL. Captivate detects the content type from the file extension and recognizes Google Sheets URLs.

For **Google Sheets** or **Microsoft Excel** cloud sources, Captivate prompts you to sign in when needed. Follow the prompt to authorize the account. You can manage saved accounts from **Settings → Internet Accounts** (the Service Accounts panel).

{% hint style="info" %}
A Google Sheets source must be a **native Google Sheet**, not an Excel workbook stored in Google Drive. If you upload an `.xlsx` file to Google Drive it stays an Excel file, so it can’t be loaded as a Google Sheet here — even if you can still open it from Captivate. To use it, open the file in Google Sheets and choose **File > Save as Google Sheets**, then load the new Google Sheet.
{% endhint %}

{% hint style="info" %}
**Availability:** Some data sources require license support. If your license doesn’t include a source, Captivate shows *"Your license does not include … support"* when you try to load it.
{% endhint %}

## Block detection

Captivate needs to know how to group rows into blocks. For a **Tables: Block** input, open **Settings → Block Settings → Block Detection Style** to choose:

* **By Blank Rows** — start a new block at every blank row in the sheet (the simplest approach for spreadsheets that visually group their data).
* **By Row Count** — fixed number of rows per block. Set the count in **Rows Per Block:**.
* **By Column Group** — group rows by the value of a chosen column. Set the column in **Column to Group By:**. (Useful for grouping a roster by team, a schedule by week, etc.)
* **Synchronize with Leaderboard** — block size follows the connected graphic’s **Leaderboard Conductor** row count. Use this when the graphic determines how many rows fit on screen, not the data.

When the connected graphic uses a Leaderboard Conductor, Captivate auto-selects **Synchronize with Leaderboard** and shows the conductor’s row count next to the **Rows Per Block:** field — e.g. *"Note: The conductor currently has 5 rows out of a maximum 10."*

{% hint style="info" %}
The separate **Leaderboard Controller** (in the Sports menu) always uses **Synchronize with Leaderboard** and hides the **Block Detection Style** dropdown. See [Leaderboard Controller](/play-and-update-graphics/chapter-index-1/leaderboard-controller.md).
{% endhint %}

## Working with a loaded sheet

The panel shows the sheet with a header bar:

* **Back** arrow — return to Load New Data
* Sheet title and current sheet name
* **Edit** pencil (cloud sources) — open the source sheet in your browser
* **Refresh** icon (web sources) — fetch the latest data from the source
* **Settings** cog

Below the header:

* **Find...** search box
* **Block Mode** switch (when allowed) — toggle block grouping on or off
* Numeric input next to Block Mode — sets **Rows Per Block:**; `0` uses automatic block detection
* **Start Auto Play** / **Stop Auto Play** — advance to the next block on a timer
* **Start Auto Refresh** / **Stop Auto Refresh** (web sources)

## Settings

Click the cog to open **Settings**:

**Automation Settings**

* **Autoplay interval (seconds):** — how often Auto Play advances to the next block. Minimum 3 seconds.
* **Auto Refresh Interval (seconds):** — how often Captivate reloads the source. Minimum 2 seconds.
* **Loop Table Playback:** — return to the first block after the last.

**Display Settings**

* **Allow Text Wrap in Cells:**
* **Block Mode:** checkbox — alternate way to toggle block grouping on/off.

**Block Settings** (shown when Block Mode is on)

* **Block Detection Style:** dropdown (see above)
* **Rows Per Block:** numeric (used by *By Row Count* and *Synchronize with Leaderboard*)
* **Column to Group By:** dropdown (used by *By Column Group*)

## Connect block data to a graphic

Tables: Block works with graphics designed to display multiple records at once. Many of these graphics use a **Leaderboard Conductor** in the Designer to define the repeated row layout.

Captivate connects matching source fields to matching graphic values when it can. To check or change the connections, use **Link Data** in the **Preview** panel.

If you’re building the graphic yourself, build the repeated row layout in the Designer and use the Leaderboard Conductor to define how rows fill the graphic — see [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md) for the Designer-side configuration.

## Multiple windows

If the Tables panel is open in more than one place, only one window controls playback and editing. The others show a **Take Control** banner with their controls dimmed. Click **Take Control** to make that window active.

## See also

* [Tables overview](/play-and-update-graphics/chapter-index-1/tables-overview.md) — Row vs Block and source options
* [Drive a graphic with Tables: Row](/play-and-update-graphics/chapter-index-1/drive-a-graphic-with-tables-row.md) — for showing one record at a time
* [Use XML or JSON with Tables](/play-and-update-graphics/chapter-index-1/use-xml-or-json-with-tables.md) — format-specific notes
* [Leaderboard Controller](/play-and-update-graphics/chapter-index-1/leaderboard-controller.md) — the sports leaderboard variant
* [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md) — the Designer-side companion


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://captivatehelp.newbluelive.com/play-and-update-graphics/chapter-index-1/tables-block-controller.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
