excel_insert_image
Deprecated — use excel_insert_image_easy instead
- debug
excel_insert_image drops an image into a spreadsheet cell range - but it's marked deprecated in the pack now, and once you see how it works, it's easy to understand why: the same pack ships excel_insert_image_easy, which does the same job with a direct IMAGE input instead of making you save a file to disk first and hand it a path. Unless you're maintaining an existing workflow built on this node, start with the "easy" version.
How it works
Instead of taking an image straight off your ComfyUI graph, this node reads one from disk via image_path and writes it into the spreadsheet at a cell range you define with row_start/row_end/col_start/col_end. Its own description spells out two genuinely different behaviors depending on how you set those four numbers, and they're worth knowing before you get a confusing result:
- Set
row_start=2, row_end=3, col_start=2, col_end=5and the image tiles sequentially across that whole rectangle - row 2/col 2 through row 3/col 5, filling multiple cells. - Set
row_start=0, row_end=3, col_start=0, col_end=5(start values at zero) and instead the image goes into just one cell - row 3, col 5. Zero in a start field acts as a sentinel meaning "collapse to just the end coordinate," not literally row/column zero.
That dual-mode behavior driven by whether your start values are zero is the kind of thing that's easy to trip over, and it's a big part of why this node reads as fiddly next to its successor.
The inputs and outputs that matter
excel_path/sheet_name- target file and sheet.row_start/row_end/col_start/col_end- the range, with the zero-start-means-single-cell behavior described above.img_height(64–2048) - the inserted image's display size in the sheet.image_path- a file path on disk, not an IMAGE input. You need to save your generated image somewhere first and point this at that path.- Output:
debug(STRING) - for checking what actually happened after the write.
How to install it
Bundled with the full pack. Via ComfyUI Manager: search "ComfyUI-Apt_Preset" → Install → restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
Windows: run install.bat afterward through ComfyUI's embedded Python. Linux/Mac: activate your ComfyUI venv and install requirements from that folder by hand. Restart ComfyUI. Beyond the pack's usual .xlsx-handling dependency, this node also needs whatever image file it's pointed at to actually exist on disk at run time - it doesn't accept an in-graph image directly.
Common issues & troubleshooting
Image lands in the wrong cell, or spreads across cells you didn't expect. This is almost always the zero-start behavior described above - check whether row_start/col_start are zero (single-cell mode, targeting the end coordinate) or nonzero (range-fill mode). It's the single most common point of confusion with this node.
"File not found" even though the image clearly generated. image_path points at a file on disk, so you need a Save Image (or similar) step upstream to actually write the file before this node runs, and the path needs to resolve correctly relative to wherever ComfyUI is running from.
Just switch to excel_insert_image_easy. If you don't specifically need the range-fill behavior, the easy version takes an IMAGE directly off your graph, targets a single row/column, and skips the save-to-disk step entirely - it's the actively maintained node and does everything most people actually need from this one.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| excel_path | STRING | excel_file_path.xlsx | — |
| sheet_name | STRING | Sheet1 | — |
| row_start | INT | 0 | — |
| row_end | INT | 1 | — |
| col_start | INT | 0 | — |
| col_end | INT | 1 | — |
| img_height | INT | 25664–2048 | — |
| image_path | STRING | image_file_path.png | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| debug | STRING | — |