CSV Viewer
Paste or upload any CSV and view it as a real table — sortable columns, searchable rows, and quick column-by-column statistics. Auto-detects the delimiter (comma, tab, semicolon, pipe), respects quoted fields containing commas, and handles UTF-8 with or without a byte-order mark. Everything renders in your browser; the file never uploads.
Why a Dedicated Viewer Beats Excel for Quick Looks
Opening a CSV in Excel triggers a chain of auto-conversions that frequently damage the data. Strings that look like dates get reformatted into Excel's local date format. Long numeric IDs get truncated to scientific notation and lose precision past the 15th digit. Leading zeros on ZIP codes vanish. None of this is malicious — Excel is just trying to be helpful — but for a quick read of an export to verify a row count or a column's contents, it's the wrong tool.
A viewer that displays the file exactly as it sits on disk is faster than Excel for the read case and safer for the verify case. For actual analysis — pivots, formulas, charts — Excel is still the right tool, and saving the file from this viewer into Excel after the verification step works fine.
How It Works
The tool reads the file via the browser's FileReader API. The first line gets analyzed for a likely delimiter by counting candidates (,, \t, ;, |) and picking the most frequent one. RFC 4180 quoting rules are followed: a field starting with \" extends to the matching closing quote, with doubled quotes inside (\"\") representing a literal quote character. UTF-8 byte-order marks are stripped from the first cell. Empty trailing rows are ignored.
The rendered table uses windowed rendering for files with more than a few thousand rows — only the visible rows are in the DOM at any given time, which keeps scrolling fluid even on multi-megabyte CSVs. Click a column header to sort by that column; click again to reverse; click a third time to clear the sort. The search box filters across all columns case-insensitively.
Common Use Cases
Verifying that an export contains what you expected before importing it into a database. Inspecting a customer-submitted CSV before mapping its columns to your schema. Diffing two CSVs row-by-row — export each as text and pipe through the text diff tool. Picking a few sample rows for a manual QA pass. Confirming the row count of a large export (100,000 rows parse in about a quarter of a second) without opening a spreadsheet program. Converting a semicolon- or tab-separated file to comma-separated: open it and export, since the CSV export always uses commas.
Worked example: five awkward files, checked against Python's csv module
A CSV viewer is only useful if it splits rows and columns the same way the program that wrote the file did. We ran the viewer's parser on five awkward files in Chromium on October 12, 2026 and compared every row with Python's standard csv module, which follows RFC 4180; all five matched exactly.
| File | Result |
|---|---|
| Commas, line breaks and quotes inside quoted fields ("Smith, John", a two-line note, says ""hi"") | Read as one field each |
| Semicolon-separated file with decimal commas (Preis;1,99), as German or French Excel saves | Semicolon detected; 1,99 stays one value |
| Tab-separated values with commas inside fields | Tab detected |
| Header with a quoted comma ("city, state") | Comma detected; header kept whole |
| UTF-8 with a byte-order mark, as Excel's "CSV UTF-8" export writes | First header read cleanly (fixed on October 12, 2026: a pasted file kept the mark in the first column name) |
The separator is picked by counting commas, tabs, semicolons and pipes on the first line and taking the most frequent, so a normal header line is enough. There is no manual separator setting, so if your file starts with a title or comment line, delete that line first. Parsing is fast: 10,000 rows (0.5 MB) took about 26 ms and 100,000 rows (5.2 MB) about 220 ms, and the table shows the rows page by page so the browser stays responsive. The file never leaves your browser.
Related tools
- Need to narrow the file to a subset of rows? The CSV Row Filter applies one or more predicates with AND/OR composition and downloads only the matching rows.
- For pasting tabular data into a README or doc site, the CSV to Markdown Table converter produces clean GitHub-flavored output with padded source and optional column alignment.
- When the file is ready to load into a database, the CSV to SQL converter emits a CREATE TABLE plus INSERT statements with inferred column types for PostgreSQL, MySQL, or SQLite.
- If the file you're inspecting needs cleanup before downstream use, the CSV Cleaner de-duplicates, trims, and normalizes null markers in one pass.
Frequently Asked Questions
Built by Derek Giordano · Part of Ultimate Design Tools