Built on advanced on-device AI and hardware acceleration to deliver professional-grade performance with uncompromising privacy.On-device AI — professional-grade, fully private.
Add or Remove CSV Columns
CSV columns — remove, add, reorder or rename, nothing uploaded.
- Runs on your device
- Four column edits in one pass
- One file free · Batch with Pro
Drop a CSV here
.csv .tsv .txt .psv — one file up to 25.0 MB
Detected by parsing a sample, not by counting separators. Override it if the file is unusual.
Some exports quote with apostrophes, and some do not quote at all.
A byte-order mark in the file overrides this choice, and the tool says when it did.
Untick for a file that starts straight into data. Renaming needs a header row to write to.
The download's extension follows this: .csv, .tsv or .psv.
CRLF for Windows programs and strict importers.
Excel needs it to open a UTF-8 CSV as UTF-8 rather than as legacy Windows text.
Off by default — quoting only what needs it keeps a diff readable.
Leave blank to keep each file's own name.
Free: one file at a time, up to 25.0 MB. Every column feature is included.
How to manage the columns of a CSV
- 1
Load the CSV
Drop a .csv, .tsv, .txt or .psv file onto the page, or open the paste box and paste the text. The delimiter, quote character and encoding are detected; each can be overridden in the settings if the file is unusual.
- 2
Say whether the first row is a header
Leave 'First row is a header' ticked for an ordinary export. Untick it for a file that starts straight into data, so its first row is treated as data rather than as column names.
- 3
Edit the column list
Untick every column you want removed, drag the grip or use the up and down arrows to change the order, type over a name to rename that header, and press Add column to insert a new one.
- 4
Set what a new column contains
Each new column takes a constant value, a blank, a row number counting from 1, or a copy of another column. The header row gets the name you typed and every data row gets the value.
- 5
Check the preview
The table under the column list shows the first 50 rows of the result, updating as you edit. It is the output, not the input, so what you see is what the file will contain.
- 6
Apply and download
Press Apply. Choose the output delimiter, line ending and whether to write a byte-order mark first if the file is going into Excel. Download the CSV, or copy it straight to the clipboard.
What this column add/remove tool offers
Everything about the output is one ordered list of columns. Keeping, removing, reordering, renaming and inserting are all edits to that list, and they all take effect in a single pass — there is no mode to switch between and no limit of one change per run.
- Remove any number of columns — Every column has a tick box. Untick the ones you do not want and they are gone from every row, header included.
- Add columns anywhere — Insert a new column and drag it to the position you want. It takes a constant value, a blank, a row number, or a copy of another column.
- Reorder by dragging or from the keyboard — The grip on the left of each row drags it; the up and down arrows beside it do the same thing without a pointer.
- Rename headers in place — Type over a column's name and the output's header row carries the new text. The data cells beneath it are untouched.
- A preview of the OUTPUT — The table shows the first 50 rows of the result, not of the input, and it updates as you edit — so the file cannot disagree with what you were looking at.
- Output written for its destination — Choose the delimiter, LF or CRLF line endings, whether to quote every field, and whether to write a byte-order mark for Excel.
Removing columns
Removing is unticking. The column disappears from the header row and from every data row, and the preview shows the remaining columns immediately.
- Several at a time — Most cleanup jobs are 'drop these six', not 'drop this one'. Untick as many as you like and press Apply once.
- Keep only a few — Press Remove all, then tick the two or three you want to keep. That is usually fewer clicks than unticking the rest.
- Keep the value, drop the header — Add a column set to Copy of another column, point it at the column you are about to remove, and rename it. The copy still resolves after the original is gone.
- Nothing is left behind — Rows in the file that are shorter than the header are padded, so the output is a rectangle with no ragged tail where a column used to be.
Adding columns, and what they contain
A new column has a name, which is written into the header row, and a value, which is written into every data row. The four value modes cover the things people otherwise leave the tool to do in a spreadsheet.
- Constant — The same text in every data row. This is the one for tagging a batch with its source, its import date or its campaign.
- Blank — An empty column with a header, ready to be filled in wherever the file is going next.
- Row number — 1, 2, 3 down the file. It counts data rows, so with a header row the first record is 1 rather than 2.
- Copy of another column — Duplicates an existing column by its position in the original file — so it keeps working after that column has been reordered, and after it has been removed.
Reordering and renaming
The order of the list is the order of the output. Moving a row moves a column, and that includes moving a newly added column into the middle rather than leaving it at the end.
- Drag — Press the grip and move. The row under the pointer is highlighted so it is clear where the column will land before you let go.
- Keyboard — The up and down arrows move a row one place. A control that can only be dragged cannot be used without a pointer at all, which is why both exist.
- Rename — Type over the name. Only the header row changes; renaming does not touch a single data cell.
- Reset — Reset columns puts the list back to the file's own columns, in the file's own order, with their original names.
Does your file have a header row?
This is the one setting that changes what the rest of the tool means, and it is the setting most online column editors do not offer at all.
- Ticked — Row one is column names. The list is labelled with them, renaming writes to that row, and a new column's name goes there too.
- Unticked — Every row is data. The list is labelled by position, no header row is written, and renaming is switched off — a name with nowhere to go is a control that only looks like it works.
- Why it matters — A tool that always treats row one as a header consumes the first record of a headerless export as column names. The output looks entirely normal, which is what makes it dangerous.
- You can change your mind — Toggling the setting re-reads the names without re-reading the file, and column names you have edited yourself are kept.
Delimiters, quotes and awkward fields
A CSV is only simple until a field contains the delimiter. Fields are read to RFC 4180 so the awkward cases survive the round trip intact.
- Detection that parses rather than counts — Each candidate delimiter is used to parse a sample, and the one producing the most consistent row widths wins. Counting separators on the first line instead is how a semicolon export with a quoted address gets read as one column.
- Quoted fields — A quoted field may contain the delimiter, line breaks and doubled quotes. All three come through unchanged and are re-quoted on the way out.
- A quote only opens a field at the start of one — An apostrophe in the middle of a bare field is a character, not a quote. Treating every quote as a toggle is what merges two rows into one on a file full of names like O'Brien.
- Ragged rows — Rows of different lengths are a property of the file, not an error. Short rows are padded on output so the result is rectangular.
- Set it by hand — Comma, semicolon, tab and pipe, and a double-quote, single-quote or no quote character, are all available if the detection reads a file wrongly. The tool says so when it is unsure and names the runner-up.
Encoding, byte-order marks and Excel
Most 'the accents came out wrong' problems are an encoding mismatch at one end or the other, and the tool addresses both ends.
- The file's own mark wins — A byte-order mark is the file stating its encoding; a dropdown is a guess. The mark is read first and overrides the choice, and the tool says when that happened.
- Real ISO-8859-1 — In a browser, iso-8859-1 is a label for Windows-1252, so the two ordinary options are the same decoder. True Latin-1 — bytes 0x00 to 0xFF straight onto the matching code points — is provided separately, which is the only way to read a genuine Latin-1 file correctly.
- UTF-16 in, UTF-8 out — Excel's 'Unicode Text' export is UTF-16. It is read correctly and written back as UTF-8, which is what everything downstream expects.
- Writing for Excel — Tick Add a byte-order mark and Excel opens a UTF-8 CSV as UTF-8 instead of as legacy Windows text. CRLF line endings are the matching choice for Windows programs that are strict about them.
Output options
The output is written for wherever the file is going next, not just re-emitted in whatever shape it arrived.
- Delimiter — Keep the file's own, or write comma, semicolon, tab or pipe. The download's extension follows: a tab-separated file is named .tsv, a pipe-separated one .psv.
- Line endings — LF for anything Unix-shaped, CRLF for Windows programs and for strict importers.
- Quote every field — Off by default, because gratuitous quoting makes a diff unreadable. On for importers that insist on it.
- Copy instead of downloading — The result can go straight to the clipboard. The clipboard gets the text without a byte-order mark, so nothing invisible is pasted into the next window.
Columns are mapped and the file rewritten off the main thread, so the page stays responsive while a large export is processed.
Several files at once
A column list built once can be applied to a whole queue of exports, which is the shape of the job when a report arrives split by month or by region.
- One list, every file — The list is built from the first file and applied to the rest, with each file's own column count respected so a shorter file cannot read past its end.
- Delivered as one archive — Results come back as a single ZIP rather than as one save prompt per file, with duplicate names made unique so nothing is silently overwritten.
- Free is one file at a time — Every column feature, every value mode and every output option is available on the free plan. What Pro buys is scale and delivery.
Why add or remove columns?
Adding a column labels or categorises rows. Removing one drops a field before the file goes somewhere it should not. Reordering and renaming are what an importer usually needs before it will accept the file at all.
- Cleaner exports — Strip the columns the next tool does not want, and the ones you would rather not share.
- Quick enrichment — Append a constant tag, a date or a running number across every row.
- Matching an import template — Most importers want particular column names in a particular order. Renaming and dragging gets a file there without opening a spreadsheet.
- Removing personal data — Dropping an email or a phone column before sharing a file is one tick box, and it all runs on your device, not our servers.
Options at a glance
- Column list — Tick to keep, drag or arrow to reorder, type to rename, Add column to insert. Keep all, Remove all and Reset columns act on the whole list.
- New column value — Constant, blank, row number, or a copy of another column.
- First row is a header — On for an ordinary export; off for a file that starts straight into data.
- Reading — Delimiter auto, comma, semicolon, tab or pipe. Quote auto, double, single or none. Encoding auto, UTF-8, UTF-16LE, UTF-16BE, Windows-1252 or ISO-8859-1.
- Writing — Output delimiter same as input or chosen, LF or CRLF, optional byte-order mark, optional quote-every-field.
- Delivery — Download, copy to clipboard, or a single ZIP for a batch. Custom filename with Pro.
Frequently asked questions
How do I add or remove a column from a CSV?
Load your CSV and the tool lists every column it found, in order. Untick a column to remove it, and press Add column to insert a new one. You are not limited to one change per run: you can untick six columns, add two and reorder the rest, then press Apply once. The preview below the list shows the first 50 rows of the result as you edit, so you can see exactly what the file will contain before you download it.
Can I remove several columns at once?
Yes, and this is the main thing the tool does differently from a single-column column deleter. Every column has its own tick box, so removing eight of twelve is eight clicks and one Apply rather than eight separate runs. Keep all and Remove all set every box at once, which makes 'keep only these three' a matter of pressing Remove all and then ticking three.
Can I reorder or rename columns too?
Yes. Drag a row by its grip to move it, or use the up and down arrows, which do the same job from the keyboard. Renaming is typing over the name in the row: the new text replaces that column's header in the output while every data cell is untouched. Reordering and renaming apply in the same run as adding and removing, so a full reshape of a file is one pass.
What value does a newly added column get?
You choose. A constant writes the same text into every data row, which is the usual choice for tagging rows with a source or a date. Blank leaves the column empty for filling in later. Row number writes 1, 2, 3 down the file, counting data rows rather than lines. Copy of another column duplicates an existing column, which keeps working even if you then remove the original — the usual way to keep a value while dropping the header that named it.
What if my CSV has no header row?
Untick 'First row is a header'. Every row is then treated as data, the column list is labelled by position instead of by name, and no header row is written to the output. This matters more than it sounds: a tool that always assumes row one is a header will quietly consume your first record as column names, and the result looks completely normal.
Does the tool handle commas and line breaks inside quoted fields?
Yes. Fields are read to RFC 4180: a quoted field may contain the delimiter, doubled quotes and line breaks, and all of that survives to the output. A field that needs quoting on the way out is quoted, and one that does not is left alone, so a diff of the file before and after shows only the columns you changed.
Which delimiters and encodings are supported?
The delimiter is detected by parsing a sample with each candidate and picking the one that produces the most consistent row widths, so a comma inside a quoted address cannot fool it into reading a semicolon export as a single column. Comma, semicolon, tab and pipe can also be chosen by hand. Text is decoded as UTF-8, UTF-16LE, UTF-16BE, Windows-1252 or true ISO-8859-1, and a byte-order mark in the file overrides whatever the dropdown says, because a file stating its own encoding beats a guess.
The result opens with strange characters in Excel. What do I do?
Tick 'Add a byte-order mark'. Excel assumes a CSV with no byte-order mark is in the system's legacy encoding, so accented and non-Latin characters arrive as mojibake. The mark is three bytes at the start of the file that tell Excel the text is UTF-8. Choosing CRLF line endings at the same time is worth doing if the file is going to a Windows program that is strict about them.
Can I process several files at once?
With Pro, yes. Build the column list once and it is applied to every file in the queue, with each file's own column count respected, and the results come back as a single ZIP rather than as one download prompt per file. On the free plan the tool takes one file at a time, up to 25 MB, with every column feature available.
Is my CSV uploaded to a server?
No. The file is read, edited and written on your device, and nothing is sent anywhere — which is what makes the tool safe for customer lists, exports and anything else confidential. It also means the work starts immediately rather than after an upload, and that closing the tab clears everything from memory.
from 68 ratings
Rate this tool
Tap a star — it takes a second