Spreadsheet2Video Load Spreadsheet
Point it at a .csv or .xlsx and skip the copy-paste
- STRING
The main Spreadsheet2Video node wants its data as pasted CSV text. That's fine for a dozen rows, miserable for anything real - which is why this pack ships Spreadsheet2Video Load Spreadsheet (node class Spreadsheet2VideoLoadText): a loader that reads an actual file and converts it into the CSV text the main node eats. Editing your runs then happens in Excel, LibreOffice, or a text editor, not inside a ComfyUI text widget.
How it works
The node scans two folders for you - ComfyUI/input and ComfyUI/input/csv - and hands you the list as a dropdown. Pick the file, and it reads the whole thing as UTF-8 text and passes it out as a STRING. The path is relative, so a file at ComfyUI/input/csv/shots.csv shows up simply as csv/shots.csv.
Beyond plain CSV it leans on pandas: .xlsx and .ods files get read through pd.read_excel and converted to CSV on the fly. That's also why .ods support needs one extra install - the README calls it out explicitly:
pip install odfpy
Without odfpy, pandas can't parse the OpenDocument format and the node will fail on .ods files. .csv and .xlsx work out of the box (pandas is already pulled in by the pack's requirements.txt).
The inputs that matter
text_file(required) - the dropdown of files found in the input folders. If you just dropped a file in, hit the refresh on the combo to see it.sheet_name(optional) - for multi-sheet.xlsx/.odsfiles. The tooltip is the whole story: "Leave blank for first sheet." Specify a sheet name (or index) if you want something other than the first tab.
The single output is STRING - wire it straight into the spreadsheet input of the main Spreadsheet2Video node.
A couple of details worth knowing
The node re-executes when the file changes rather than when you touch anything, using a fingerprint of the file's size and modification time. Practical upshot: edit your spreadsheet, and re-running the workflow picks up the new rows without you needing to re-select anything. And the fingerprint is why the README's workflow preview caveat exists - always load the actual workflow file rather than trying to open it from the assets list, or the file path bindings can get confused.
One honest limitation: this is a loader for the loop's data, not its files. If you want the loop to iterate over filenames, the Spreadsheet2Video Files list node builds that column for you - drop its output into a CSV and load it here, or paste it into a spreadsheet with your other columns. The two nodes are made to work together.
If your spreadsheet is small, skip this node and type directly into the main node. If it's a real dataset, this is the node that keeps you sane - one file, one source of truth, no more pasting a 200-row CSV into a text box.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text_file | COMBO | 1 options: example.png | |
| sheet_nameopt | STRING | Leave blank for first sheet |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |