CSV Column Renamer

Paste a CSV to load its header row, then type new names for each column. Click Apply to update the headers and copy or download the result. Supports all common delimiters. Runs in your browser.

Browser-local No signup required Utility

Rename the header row of a CSV or other supported delimited table without changing the data rows. Choose the delimiter, load the current headers, edit each name, and export the table with the revised header row.

How to rename CSV columns

  1. Paste the delimited table into the input box.
  2. Choose comma, semicolon, tab, or pipe as the delimiter.
  3. Click Load headers to create an editable field for each first-row value.
  4. Enter the new names you want for the columns.
  5. Click Apply to generate the updated table.

What the renamer changes

The first parsed row is always treated as the header row for this tool. Applying changes replaces only that row; all later parsed rows are preserved in their original order.

The output keeps the selected delimiter and quotes cells when they contain that delimiter, a quote, or a line break. Embedded quote characters are doubled when the table is serialized.

Privacy and limitations

Parsing and renaming happen locally in the browser and the table is not intentionally uploaded for processing. The parser supports quoted fields and common line endings, but it does not validate a strict CSV dialect or infer whether the first row is actually a header.

Frequently asked questions

Does it change the data rows?

No. Only the first row is replaced with the names entered in the header fields.

Can I use tab-separated data?

Yes. Tab, comma, semicolon, and pipe are available as delimiters.

Can a new header be blank?

Yes. The tool uses exactly the text entered in each header field, including an empty string.

Are quoted values preserved safely?

The table is parsed and then serialized again, with quotes added where required and embedded quotes doubled.

Does it detect the delimiter automatically?

No. Select the delimiter that matches the input before loading headers.