Rename CSV Columns
Most imports fail on headers before they fail on data. A bank export might call a field Txn Date while the ledger template expects date, and a short Amt header has to become amount. This tool accepts one list of old=new pairs and rewrites the header row in a single pass, leaving every data value where it was.
Each old name is looked up in the file's header row. Lookup ignores letter case, so amt=amount finds Amt. A name that is not present produces an error that lists the available headers, so a typo never passes silently into the output.
Key features
- Many renames applied from one comma-separated list
- Case-insensitive matching against the existing headers
- Explicit error for unknown or malformed pairs
- Data cells copied through unchanged
About the CSV to CSV with new headers format
Only the header row changes. Column order and every cell value are copied as they were. Pairs are separated by commas or line breaks, and each pair is split at its first equals sign, which means a new name is allowed to contain an equals sign itself.
Before the file is written, the tool checks that the header row still has unique names. If a rename would land on a name that another column already carries, the whole run is refused.
How it works
The tool splits the list into pairs, resolves each old name against the header row, and records the new name for that position. It then writes the header row with the new names, followed by every record re-keyed to match.
Common use cases
- Matching a bank's Txn Date, Desc, Amt export to the date, description, amount columns of an accounting import.
- Replacing survey column codes such as Q1_a with readable question labels before sharing the file.
- Cleaning headers that have stray capitals or spaces before a database load that is strict about names.
- Lining up two regional files so their headers agree before combining them with Merge CSV.
How to use this tool
- Paste the export, or upload it, with the header names in its first line.
- Type each rename as old=new and separate the pairs with commas, for example Txn Date=date, Desc=description.
- Read the new header line in the preview to confirm each pair applied.
- Download the file once the names match the destination's template.
Example
Input (bank export, two rows)
Txn Date,Desc,Amt
2026-10-01,Coffee,-4.50
2026-10-02,Rent,-1200.00Output with Txn Date=date, Desc=description, Amt=amount
date,description,amount
2026-10-01,Coffee,-4.50
2026-10-02,Rent,-1200.00Tips for best results
- Copy the old names from the first line rather than retyping them, so spelling matches; letter case may differ.
- Rename before merging. Merge CSV unites headers by exact name, so Amt and amount from two regions would otherwise survive as two columns.
- If the destination also needs a fixed column sequence, run Reorder CSV Columns on the renamed output.
Common errors and how to fix them
- Column "Amount" was not found. Available columns: Txn Date, Desc, Amt.
- The file header is Amt, not Amount. Copy the exact header from the message, since spelling is checked even though letter case is not.
- Rename "Desc" must use the form old=new.
- Each pair needs an equals sign between the old and new names. Write Desc=description rather than only the old name.
- Renaming would create duplicate column names.
- A new name matches a header you did not rename, such as renaming Desc to Amt while Amt is still present. Rename the other column in the same list, or pick a different name.
Frequently asked questions
Does renaming touch the values in the rows?
No. Only the header line is rewritten. Each cell is copied through as it was typed in the file.
Can a header be renamed to an empty string?
No. Both sides of a pair must contain text, so an empty new name is reported as an error instead of producing a blank header.
For more background on data formats and conversion workflows, read our format guides.