What does your header text actually say?
Real app headers often include noise: sort arrows, counts, badges. headerTransformer runs on each header before it's stored — the cleaned name is what you use everywhere else in getRow, getCell, etc.
| Name ↑ | Department ↓ | Salary | Status | Start Date |
|---|---|---|---|---|
| Ada | Engineering | 90000 | Active | 2022-03-01 |
| Bob | Marketing | 65000 | Active | 2021-07-15 |
| Carol | Engineering | 95000 | On Leave | 2020-11-08 |
typescript
headerTransformer: async ({ text }) => text.replace(/[↑↓▲▼]/g, '').trim()
// Result: 'Name', 'Department', 'Salary', 'Status', 'Start Date'Config: headerTransformer