View and edit CSV files in a spreadsheet-like interface
CSV is a deceptively simple format. The spec (RFC 4180) fits on two pages: records separated by newlines, fields separated by commas, and fields containing commas, quotes, or newlines wrapped in double quotes with internal double quotes escaped as pairs. In practice, real-world CSVs violate every rule. Semicolon-separated files from European Excel exports, tab-separated files that still carry a .csv extension, mixed quoting conventions in the same file, ragged row lengths, commas embedded in unquoted fields. The producing tools were permissive, so the parser has to be too. This viewer parses with PapaParse, which tolerates the common real-world deviations and auto-detects the delimiter, then shows the result in a spreadsheet-style grid you can read and edit. The grid is paginated at 100 rows per page rather than rendering the whole file at once, so even large files stay responsive while you page through them. Everything runs in the browser, so practical limits come down to your available memory; very large multi-gigabyte files are better handled by dedicated tools like DuckDB or pandas.
Initializing in your browser…
A vendor sent a 40,000-row export and you just need to scan and lightly edit it without launching a heavy spreadsheet app.
Opened
orders_export.csv (40,210 rows, 9 columns)
In the viewer
Sortable, searchable grid with frozen headers; edit a cell and re-export, all in the browser.
The file is parsed and virtualised so tens of thousands of rows scroll smoothly, with column sort and search to find records fast. Because it stays client-side, a customer export with personal data is never uploaded anywhere.
CSV is a deceptively simple format. The spec (RFC 4180) fits on two pages: records separated by newlines, fields separated by commas, and fields containing commas, quotes, or newlines wrapped in double quotes with internal double quotes escaped as pairs. In practice, real-world CSVs violate every rule. Semicolon-separated files from European Excel exports, tab-separated files that still carry a .csv extension, mixed quoting conventions in the same file, ragged row lengths, commas embedded in unquoted fields. The producing tools were permissive, so the parser has to be too. This viewer parses with PapaParse, which tolerates the common real-world deviations and auto-detects the delimiter, then shows the result in a spreadsheet-style grid you can read and edit. The grid is paginated at 100 rows per page rather than rendering the whole file at once, so even large files stay responsive while you page through them. Everything runs in the browser, so practical limits come down to your available memory; very large multi-gigabyte files are better handled by dedicated tools like DuckDB or pandas.
This is a viewer and lightweight editor, not a spreadsheet engine. Turn on edit mode and click any cell to change its value; you can also add or delete rows and columns. Edits are kept in an in-memory copy of the table, so your original file is never touched, and a full undo/redo history (with keyboard shortcuts) lets you step back through changes. Copy and paste are supported for moving values around the grid.
Search scans every cell for your term (case-insensitive) and jumps between matches, automatically paging to the row where each match lives. When you are done, export writes the edited table to a new CSV using PapaParse's serializer, which applies consistent RFC 4180 quoting (fields containing a comma, newline, or quote get wrapped in double quotes with internal quotes doubled). The download is UTF-8 encoded. This tool does not sort columns or convert delimiters and encodings on export; for sorting use the CSV Sorter and for delimiter or encoding changes use the CSV Formatter.
Fix a few values in a CSV export right in your browser instead of launching heavy desktop software.
Visually inspect a CSV before feeding it into a pipeline or database import.
No. This viewer focuses on browsing and editing. To reorder rows by a column, use the CSV Sorter tool, which supports multi-column, numeric, and date-aware sorting.
No. Everything runs locally in your browser, your CSV data is never uploaded anywhere.
Rows and columns are parsed and transformed in memory in your browser. No record ever reaches a server.