Overview
Introduction
Sometimes a quick sort or read-only preview isn't enough, you actually need to fix a typo, delete a bad row, or add a new column, without opening a spreadsheet program.
CSV Editor turns your pasted CSV into a real editable table: click into any cell and type, add or remove rows and columns with a button, and export the result whenever you're done.
What Is CSV Editor?
A browser-based CSV table editor where every cell is a real text input bound to component state, not a static display value.
It keeps the edited grid separate from the raw text input, so you can paste a fresh CSV, load it into the table deliberately, and edit freely without every keystroke in the input box fighting your in-progress edits.
How CSV Editor Works
Pasted CSV text is parsed once via the shared parseCsvGrid parser into a header array plus a rectangular rows array, which becomes the editor's live grid state.
Every edit (cell change, header rename, add/remove row, add/remove column) runs through a small set of pure, immutable grid-transform functions, and the output panel re-serializes the current grid back into CSV text after every change.
When To Use CSV Editor
Use this when you need to make a handful of targeted edits, fix a value, drop a row, add a column, to a CSV without pulling it into a full spreadsheet application.
It's also useful for quickly building up a small CSV by hand: start from an empty-ish sample, add rows and columns, and export.
Often used alongside CSV Viewer and CSV Splitter.
Features
Advantages
- Real inline editing, every cell is an actual input, no read-only limitation.
- Explicit add/remove controls for both rows and columns keep the grid always rectangular.
- The deliberate "load from input" step means in-progress edits are never silently overwritten.
Limitations
- Editing very large CSVs (many thousands of rows) as individual DOM inputs can get slow, this is best suited to small-to-medium edits.
- There's no undo history, removing a row or column is immediate and only recoverable by re-loading from the input panel.
Examples
Best Practices & Notes
Best Practices
- Click "Load from input above" right after pasting a new CSV, the table won't update on its own.
- Delete columns you don't need before adding many rows, it keeps the table narrower and easier to scan.
- Copy or download the output panel's CSV as soon as you're happy with an edit, there's no undo.
Developer Notes
The grid lives as `useState<CsvEditorGrid | null>`, seeded once from the sample via `parseIntoGrid`; every mutation (updateCell, updateHeader, addRow, removeRow, addColumn, removeColumn) is a pure function in csv-editor.ts that takes the current grid and returns a brand-new one, so React state updates stay simple functional replacements rather than in-place mutation, and gridToCsvText wraps the shared stringifyCsvGrid for the live output panel.
CSV Editor Use Cases
- Quickly fixing a handful of incorrect values in a CSV export without opening a spreadsheet program
- Manually building a small CSV fixture by adding rows and columns from scratch
- Removing a bad row or an unwanted column before pasting a CSV somewhere else
Common Mistakes
- Expecting the table to update live as you type in the input box above it, you need to click "Load from input above" to re-seed the table.
- Forgetting there's no undo, double-check before clicking a row or column's delete button.
Tips
- Use CSV Size Analyzer afterward to check the edited CSV's row/column counts and byte size before exporting it elsewhere.
- Pair with CSV Splitter if your edited CSV ends up large and you need to break it into smaller files.