> 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/drive-a-graphic-with-tables-row.md).

# Drive a graphic with Tables: Row

Use **Tables: Row** when each row in a spreadsheet, CSV file, Google Sheet, XML file, or JSON file represents one set of values for a graphic — one speaker for a lower third, one player for a stats card, one sponsor for a bug. Load the data, connect its columns to the graphic, then play through the rows during the show.

For showing several records at once as a group (a leaderboard, a roster), use [Tables: Block](/play-and-update-graphics/chapter-index-1/tables-block-controller.md) instead.

## Format your data

Each column heading in your data becomes a source field that can connect to a graphic value, and each row becomes one record:

1. On the first line, enter the field names — for example, `Name,Role`.
2. On each following line, enter the values for one record — for example, `Juan,Producer`.

Don’t include blank lines. To use an image from a data column, enter the image’s file name (for images in the project’s Textures folder) or its full path and file name. To carry a color, enter a hexadecimal value such as `#2F3BE4`.

## Add a Tables: Row input

1. Select the graphic’s row in the **Project List** and, in its **Data Controller** column, choose **Productivity → Tables: Row → New Input**. Captivate adds an instance named `Tables: Row.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 — click **Add new item** in the playout window and choose **Productivity → Tables: Row → New Input** — and connect graphics to it afterwards.

## 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 %}

For XML and JSON specifics, see [Use XML or JSON with Tables](/play-and-update-graphics/chapter-index-1/use-xml-or-json-with-tables.md).

{% 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 %}

The **Recent** list at the bottom remembers sheets you’ve previously loaded. Use the **Filter** box to narrow it down. Click a row to reload that sheet, or use the trash icons to remove individual entries (or the **Clear All** trash icon to remove all).

## Connect columns to graphic values

Captivate connects matching source fields to matching graphic values when it can — a source field named `Name` can connect to a graphic value named **Name**. To check or change the connections:

1. Select the graphic in the **Project List**.
2. Open the **Preview** panel and click **Link Data**.
3. Connect each source field to the graphic value it should control.

As Tables: Row advances through records, the connected graphic values update from the selected row.

**💡 TIP**\
If you’re building the graphic yourself, give the values clear names in the Designer so they match the column headings in your data.

## Working with a loaded sheet

Once a sheet is loaded, the panel shows the sheet rows with a header bar:

* **Back** arrow (top-left) — return to the Load New Data screen.
* Sheet title — the workbook title and the current sheet name.
* **Edit** pencil (cloud sources only) — opens the source sheet in your browser for editing.
* **Refresh** icon (web sources only) — fetch the latest data from the source.
* **Settings** cog — opens the Settings modal.

Below the header:

* **Find...** search box with prev/next/clear buttons. Captivate highlights matching cells and shows the match count.
* **Start Auto Play** / **Stop Auto Play** — automatically advance through rows at the set interval (default 5 seconds).
* **Start Auto Refresh** / **Stop Auto Refresh** (web sources only) — automatically reload the source at the set interval (default 30 seconds).

## Settings

Click the cog to open **Settings**:

**Automation Settings**

* **Autoplay interval (seconds):** — how often Auto Play advances to the next row. Minimum 3 seconds.
* **Auto Refresh Interval (seconds):** — how often Captivate reloads the source. Minimum 2 seconds.
* **Loop Table Playback:** — when on, return to the first row after the last; when off, stop at the end.

**Display Settings**

* **Allow Text Wrap in Cells:** — wrap long cell values in the panel preview.

You can also use **Select titles to use for playback** — choose **All Connected**, **None**, or specific titles. This is useful when more than one graphic is connected to the same data: you decide which titles Auto Play actually drives.

## Tables: Row or Values Grid?

Both hold rows of values for one graphic. Use the [Values Grid](/get-started/chapter-index-2/values-grid-tab-reference.md) when you prepare and curate the rows yourself inside Captivate. Use Tables: Row when the rows live in a file, sheet, or feed maintained outside Captivate — the data refreshes from the source, so the spreadsheet stays the single source of truth.

## Multiple windows of the same controller

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. Inactive windows still show live state, so you can monitor without disrupting playout.

## See also

* [Tables overview](/play-and-update-graphics/chapter-index-1/tables-overview.md) — Row vs Block and when to use Tables at all.
* [Use XML or JSON with Tables](/play-and-update-graphics/chapter-index-1/use-xml-or-json-with-tables.md) — format-specific notes.
* [Tables: Block Controller](/play-and-update-graphics/chapter-index-1/tables-block-controller.md) — for showing several records at once.
* [Values Grid tab](/get-started/chapter-index-2/values-grid-tab-reference.md) — rows you curate inside Captivate.
* [Crawl Conductor](/design-and-customize-graphics/chapter-index-5/crawl-conductor.md) and [Roll Conductor](/design-and-customize-graphics/chapter-index-5/roll-conductor.md) — pair with Tables: Row for timed advancement and motion.


---

# 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/drive-a-graphic-with-tables-row.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.
