Sheets

Spreadsheets as a data source: import, edit, calculate, format and bind.

Publishing a sheet as JSON, CSV, TSV, Excel or XML — as URLs and files.

Binding projects the cells you picked. Live outputs publish the whole sheet instead, for a graphic or another CG program (vMix, a Ross or Chyron data link, a browser source) to read. The gear beside the ↗ button opens the sheet's outputs; ↗ opens the first URL that is on.

OutputHow it is readUse it for
Live URLGET /api/pages/<pageId>/sheets/<sheetId>.<json|csv|tsv|xlsx|xml>, read from the saved page on every request.Anything that polls over the network: vMix XML/JSON data sources, web tools, a machine across the LAN (pick its network address in the dialog).
Live fileWritten to <output folder>/<Page name>/<Sheet name>.<ext> on every save; atomic, so a reader never sees half a file.Programs that watch a file: vMix's Excel/CSV data source reloads the moment Glider rewrites it.
Live file on another computerThe receiver (below) keeps a copy of every live file in a folder on that computer, swapped the moment it changes here.vMix on another PC: its Excel/CSV and Text sources open files only, never URLs.

Other computers on the network

vMix's Excel/CSV and Text data sources open a file path — local or a network share — and cannot read a URL, and neither can an FTP address. So a CSV or .xlsx for a vMix PC across the network has to be a file on that PC. The receiver does that: one line pasted on the other computer, nothing installed, no admin rights. It waits on Glider (a long-poll answered the moment any live file changes), downloads only what changed and swaps each file whole, so vMix reloads at once. It needs only to reach this computer's port — the same one a /view browser input uses.

On the other computerPaste (the dialog fills in this computer's address)
Windows (PowerShell)irm 'http://<this-computer>:<port>/api/sheet-outputs/receiver/windows' | iex
macOS / Linux (Terminal)curl -fsSL 'http://<this-computer>:<port>/api/sheet-outputs/receiver/unix' | sh
  • Files land in Documents/Glider Sheets on that computer unless the dialog names another folder, laid out like this computer's output folder: <Page>/<Sheet>.xlsx.
  • Leave the window open. If Glider restarts or the network drops, it waits and catches up by itself.
  • Turning an output off, renaming a sheet or deleting the page removes the copies too — only files the receiver wrote.
  • One receiver per folder: a second one into the same folder refuses to start.
  • The dialog lists every computer receiving right now, with its folder.
  • Alternative without a receiver: share the output folder with the OS's file sharing and open \\<this-computer>\<share>\… in vMix. That needs an account on this computer, as Windows refuses guest access by default.

Any mix can be on at once — for example the JSON URL for a Glider graphic, the .xlsx file for vMix and the XML URL for a second tool. The choice is one setting for every sheet on the page, saved with the page, so a sheet added later publishes too. A page starts with only the JSON URL of each sheet. (Pages saved while outputs were set per sheet keep everything any sheet published.)

Excel is one workbook for the whole page — <Page>.xlsx, or /api/pages/<pageId>/sheets/all.xlsx — with a worksheet per sheet (Sheet 1, Sheet 2, Sheet 3; a sheet with several tabs gives one per tab, "<Sheet> - <Tab>"). Point one vMix Excel/CSV data source at it and pick the sheet as the table, as with any multi-sheet workbook. A CSV holds one table, so CSV, TSV, XML and JSON are a file (and a URL) per sheet: Sheet 1.csv, Sheet 2.csv …

FormatShape
JSONA one-element array wrapping a flat map of the tab's cells keyed by A1, column-major (A1, A2 … B1 …). Every cell in the extent is present; an empty one reads "".
CSV / TSVThe tab's rows as they appear, UTF-8 with a BOM (so Excel reads ç, ş, ı right), CRLF line ends; a field is quoted only when it has to be. Booleans read TRUE / FALSE.
Excel (.xlsx)The page workbook: every sheet as a worksheet, values only. /sheets/<sheetId>.xlsx is one sheet's tabs. ?tab= is ignored.
XML<sheet name=… tab=…><row n="1"><A>…</A><B>…</B></row>…</sheet> — one child per column named by its letter, empty cells included. In vMix set XPath to /sheet/row.
Text
GET /api/pages/<pageId>/sheets/<sheetId>.json?tab=<tabKey>

[
  {
    "A1": "Name",
    "A2": "Ada",
    "A3": "",
    "B1": "Score",
    "B2": 12,
    "B3": ""
  }
]
RuleDetail
ValuesExactly what a binding carries in every format: formula results (errors as their code), never the formula text. Number, currency and percent formatting are not applied.
tabA tab key or a tab name. Omitted, the first tab is returned. A multi-tab sheet writes one text file per tab: <Sheet> - <Tab>.csv.
OffA URL whose format is turned off answers 404 with a note saying where to turn it on.
ExtensionThe bare sheet id reads JSON.
Output folderDetail
WhereDocuments/Glider Sheets by default; change it in the dialog (it applies to this machine, and every page's files move). GLIDER_SHEET_OUTPUT_DIR overrides it.
What Glider touchesOnly the files listed in the page folder's .glider-sheets.json. Renaming a sheet or the page, turning an output off or deleting the page removes those files and nothing else.
RewritesOnly files whose content changed are written, so editing one sheet (or a graphic) does not make vMix reload the others.

GET /api/pages/<pageId>/sheets lists every sheet on the page with the URLs that read it (outputs holds one per format that is on), the tabs inside each one and, while the Excel URL is on, the page workbook URL, so a consumer never has to guess an id.