CSV Editor
| Row | ||||
|---|---|---|---|---|
| 1 | ||||
| 2 | ||||
| 3 |
How it works
Open a CSV and edit it as a grid: click any cell and type, rename a column by editing its heading, sort by clicking a column's arrow, and narrow a long file with the filter box.
Row and column operations sit on each row and each heading: move up/down and left/right to reorder, + to insert a blank row above, ⧉ to duplicate a row, ✕ to delete. Reordering is disabled while a filter is active, because the row above on screen is not the row above in the file and moving by one would land somewhere unexpected.
Undo and redo cover everything (edits, reordering, inserts, deletes, sorts) with Ctrl+Z and Ctrl+Shift+Z. Typing a word into one cell collapses into a single undo step rather than one per keystroke.
Keyboard navigation works like a spreadsheet: arrow keys move between cells (left/right jump when the caret reaches the end of the text), Enter moves down a row, and Shift+Enter inserts a line break inside the cell.
The delimiter is detected from the file (comma, semicolon, tab or pipe) and can be overridden, as can the text delimiter, the quote character (" or ') that lets a field legally contain the delimiter itself. Semicolon is what Excel writes on Italian, German and French locales.
Encoding is detected, not assumed. Browsers decode files as UTF-8 unconditionally, which is why a spreadsheet export saved as Windows-1252 shows up elsewhere as "Citt?" instead of "Città". Here the file is read as raw bytes and decoded deliberately: valid UTF-8 is treated as UTF-8, anything else as Windows-1252, and you can override the choice. The file is then written back in the encoding it arrived in, so syncing your edits does not silently convert it, and if you type a character the target encoding cannot hold (an emoji in a Windows-1252 file) you are told rather than finding a "?" later. Line endings are preserved the same way: a CRLF file stays CRLF. For UTF-8 there is a BOM toggle, because Excel needs one to open a UTF-8 CSV with the accents intact.
Live two-way file sync. On Chromium browsers (Chrome, Edge, Brave, Opera) the Open file button binds the CSV on your disk to this grid. Every edit is written back to that exact file about a second later: no download, no re-upload, no "copy of copy (2).csv". Edit the same file in another program and the change is picked up here; if both sides changed at once you are asked which version wins rather than one silently overwriting the other. On Firefox and Safari, which have no File System Access API, Upload and Download still work normally.
The parser follows RFC 4180, which is what makes the difference on real exports: quoted fields containing commas or line breaks, doubled quotes as escapes (`""`), CRLF endings from Windows, and a UTF-8 BOM at the start of the file are all handled. Ragged rows are padded so the grid stays rectangular instead of collapsing, and the original quoting is regenerated only where the format actually requires it.
Sorting is type-aware. A column whose values are all numbers sorts numerically, so 9 comes before 10 and 100, the classic failure of a plain text sort. Anything else sorts alphabetically with natural ordering, and blank cells always sink to the bottom so they never break the sequence.
Large files stay workable because the grid is virtualised: only the rows in view exist in the page, and the CSV is re-serialised when you pause rather than on every keystroke. A 20,000-row file loads in under a second and holds around 20 MB, instead of the memory climbing with the row count.
Everything runs in your browser. The file is read and written locally, nothing is uploaded, and there is no size limit beyond your machine's memory, which matters when the CSV is a customer export you should not be pasting into a website. If you need the data as JSON instead, the CSV ⇄ JSON Converter on this site does that conversion.
Frequently Asked Questions
Does editing really save back to my file?
- Yes, on Chromium browsers (Chrome, Edge, Brave, Opera). Click Open file, grant write permission once, and each edit is written to that file on disk shortly after you stop typing, the same way the Markdown Viewer on this site works. Firefox and Safari have not shipped the File System Access API, so there you Upload the file and Download the result.
What happens if I edit the file elsewhere at the same time?
- The editor checks the file about once a second. If it changed on disk and you have no unsaved edits, the new content is loaded automatically. If both sides changed, editing pauses and you are asked whether to keep the file's version or your own, so nothing is overwritten behind your back.
Does it open semicolon-separated CSV files?
- Yes. Excel writes semicolon-separated files on locales where the comma is the decimal separator (Italy, Germany, France and others). The delimiter is detected across the first few lines, counting only separators that sit outside quoted text so a field like "Rossi; Mario" does not fool the detection, and you can force comma, semicolon, tab or pipe at any time.
Why do accented characters show as "Citt?" in other tools?
- Because the file is Windows-1252 (the default for Excel on Western-European locales) and the tool decoded it as UTF-8. This editor reads the raw bytes and decides: strictly-valid UTF-8 is UTF-8, anything else is Windows-1252. The Encoding dropdown shows what was detected and lets you override it if a file is unusual.
Does saving convert my file to UTF-8?
- No. The file is written back in the encoding it was opened with, so a Windows-1252 CSV stays Windows-1252 and its CRLF line endings stay CRLF. Change the Encoding dropdown if you actually want to convert it. If a character cannot be represented in the target encoding, a warning names it instead of quietly writing "?".
What is the "text delimiter" option?
- It is the quote character that wraps a field so the field may contain the delimiter, a line break or a quote itself: " in almost every file, ' in some exports. It is the same setting spreadsheets call "text delimiter" or "text qualifier" in their CSV import dialog.
Should I tick the BOM option?
- Tick it if the file will be opened in Excel and you are saving as UTF-8: without a byte-order mark Excel assumes the local ANSI codepage and mangles the accents. It is ticked automatically when the file you opened already had one. For files consumed by scripts, databases or other programs, leave it off.
Are quoted fields with commas and line breaks handled?
- Yes, the parser implements RFC 4180. A field wrapped in quotes may contain the delimiter, line breaks, and escaped quotes written as two double-quotes. On save, quoting is reapplied only to the fields that need it, so the output stays clean.
Why does sorting numbers work here but not in some other tools?
- Because the column is inspected first: if every non-empty value parses as a number the sort is numeric, otherwise it is alphabetical with natural ordering. A plain string sort puts 10 and 100 before 9, which is the bug you have probably hit in a spreadsheet import.
Can I reorder rows and columns?
- Yes. Each row has move-up and move-down buttons, each column heading has move-left and move-right, and a column carries its heading and every cell beneath it when it moves. Rows can also be duplicated, or a blank one inserted above. Reordering is greyed out while a filter is active: with rows hidden, "move down by one" would not mean what it looks like.
Is there undo?
- Yes, Ctrl+Z (Ctrl+Shift+Z to redo), or the buttons under the grid. It covers cell edits, header renames, inserts, deletes, moves and sorts, up to 100 steps. Typing a word into a cell is one undo step, not one per letter.
Does Enter add a new line in a cell?
- Shift+Enter does. Plain Enter moves down to the next row, which is the spreadsheet convention and what you want when filling a column. Arrow keys move between cells too, jumping to the neighbouring column once the caret reaches the end of the text.
Is there a row limit?
- No hard limit. Only the rows on screen are actually rendered, so a 20,000-row file opens in well under a second and sits at roughly 20–25 MB of memory rather than growing with the row count. Very wide files (hundreds of columns) are the heavier case, since every column in a visible row is rendered.
Is my data uploaded anywhere?
- No. The file is read, edited and written entirely on your device; the page makes no network request while you work, which you can confirm in DevTools → Network. That is the point of using this rather than an online converter for a customer list or an export with personal data.