The problem/error
When using the Microsoft Excel node with Read rows and Select a range = true, n8n treats the first row of the selected range as column headers, even when that row is not the actual header row in the worksheet. This causes data values to be promoted to headers, resulting in corrupted output where real headers are ignored, column names become data values, and downstream nodes receive invalid structures. This behavior is unintuitive and differs from user expectations when working with Excel ranges.
Expected Behavior
One of the following should happen:
- n8n respects the original worksheet headers, or
- n8n provides an option to disable header detection for ranged reads, or
- n8n allows explicitly defining the header row.
Actual Behavior
- The first row of the selected range is treated as the header row.
- Values from this row are promoted to column names.
n8n setup
- n8n version: 1.121.2
- Database (default: SQLite): default
- n8n EXECUTIONS_PROCESS setting (default: own, main): default
- **Running n8n via : ** Docker
- Operating system: Windows