CSV Viewer and Editor
Open a CSV file, view it as a paginated table, edit cells inline, and export the result.
Drop a CSV file in to see it rendered as a familiar spreadsheet grid. Edit any cell directly, add or remove rows and columns, and download the cleaned-up data as a new CSV. Files are parsed with SheetJS so quoting, escaping, and large files all behave the way RFC 4180 expects.
A CSV viewer that treats your file the way a spreadsheet would: a real table with row numbers, column headers, and editable cells. SheetJS handles the parsing, so quoted fields containing commas, escaped quotes, and mixed line endings all come through correctly per RFC 4180. The table paginates at 100 rows per page, which keeps rendering smooth on files with tens of thousands of records.
Click a cell to edit it inline. Add rows when you need to append data, add columns when the source was missing one, or delete a row when you find junk. When you are happy with the result, the Export CSV button writes the in-memory grid back out using SheetJS's CSV writer, which re-quotes any field that contains a comma, quote, or newline.
This is meant for the everyday case: a coworker sent you a CSV, you want to look at it, fix two cells, and send it back. No need to open a heavy desktop app, sign in to a cloud spreadsheet, or worry about whether the upload is going to leak the file somewhere.
- 1
Choose a CSV file
Pick a .csv file from your device. The parser runs in your browser using SheetJS and reads it into a 2D array.
- 2
Browse and edit
The grid shows 100 rows per page with prev/next controls. Click any cell to edit it, or add rows and columns as needed.
- 3
Export
Export CSV serializes the current grid back to a CSV file and downloads it. Quoting and escaping follow RFC 4180.
Fix a coworker's export
Open the CSV they sent, correct a typo in two cells, and download the cleaned file without firing up Excel.
Inspect a backend dump
Drop a database export in to see column shapes, row count, and any malformed rows before loading it elsewhere.
Quickly add a column
Append a status column to a list and fill in a few values without touching a spreadsheet program.
Verify a generated report
Check that a CSV produced by a script looks right, including pagination so large files do not freeze the browser.
Does my CSV get uploaded anywhere?
No. The file is read with FileReader, parsed in memory with SheetJS, and rendered on the page. Nothing leaves your browser, and closing the tab discards everything.
How big a file can it handle?
Anything up to a few hundred thousand rows works fine on a typical laptop. Rendering is paginated at 100 rows per page so the DOM stays small even for large files. Memory is the only real limit.
Will it handle quoted fields with commas and newlines?
Yes. Parsing goes through SheetJS, which follows RFC 4180 conventions for quoting, escaped double quotes, and embedded newlines. The exporter re-quotes any field that needs it on the way out.
Can I undo an edit?
There is no built-in undo. Edits commit to state on blur. If you need a safety net, export a copy before making changes, or refresh the page and re-open the original file.
What about semicolon-separated or tab-separated files?
SheetJS auto-detects common separators on read. The exporter writes standard comma-separated output. If you need a different separator on output, open the downloaded file in another tool to convert.