CSV Viewer
CSV Viewer
Browse a CSV as a sortable, filterable table — directly in the browser, with no spreadsheet software required. Click any column header to sort. Type in the filter box to narrow rows across every column. Handles files well past Excel's 1,048,576-row cap, without uploading anything or requiring an account.
Before you start
All you need is a CSV (or TSV, or anything delimiter-separated that has a header row). No special preparation. The first row is treated as column names.
This tool is read-only — it won't modify your file. Filtering in the UI only affects what's displayed; the Download filtered button exports a fresh CSV containing exactly the rows currently visible.
How to use it
- Drop a
.csvfile on the pane, paste text, or pick a file. - Click Render (it also renders automatically when you drop a file).
- Sort: click any column header. Click again to reverse; click a third time to go back to the original order.
- Filter: type in the filter box. It's a plain substring search across every cell of every row — no regex, no operators, no column-specific syntax, just text matching.
- Export the current view: Download filtered saves only the rows you see, preserving any sort order.
What you're looking at
- Sticky header: the column names stay visible while you scroll.
- Row numbers (on the left) are the original line numbers in the file, not the post-filter index — useful when cross-referencing with the source.
- Rendering cap: up to 5,000 matching rows are drawn at once, so the tab stays responsive. The status bar tells you if more were trimmed — narrow your filter to see them.
Tips & common pitfalls
- Huge files: 500 MB–1 GB CSVs usually work but the initial render can pause for a second or two. If the tab gets janky, filter down before sorting — sorting is what costs the most.
- Sort is text-based.
10sorts before2because the comparison is lexicographic. For numeric columns, pad with leading zeros or filter first. - Filter is case-sensitive. If you're looking for Alice but some rows have alice, both casings are not matched. Lowercase the data first, or search with the exact casing.
- Wide tables scroll horizontally inside the viewer — on mobile, swipe. The rest of the page doesn't scroll, only the table.
- Multi-byte characters (non-Latin scripts) display correctly but may look misaligned in the monospace font; that's cosmetic, not data loss.
Troubleshooting
The whole file is in one column.
Delimiter misdetection. Paste the first 10 lines into a dedicated file and drop that — clearer delimiter patterns help the auto-detector.
My file is too large and the tab crashed.
Browser tabs have a memory ceiling (roughly 2–4 GB on desktop). Use the Split CSV tool to break the file into chunks first, then view the chunks.
I sorted and now the row numbers are shuffled — is my file corrupted?
No. Row numbers show the original position in the file. They shuffle when you sort. Click the sort arrow a third time to restore the original order.
Frequently asked questions
How big a file can I open?
Anything that fits in your browser's RAM. Typically 500 MB to 1 GB of CSV on a modern laptop; less on low-RAM devices and phones.
Does it handle quoted fields with commas and newlines?
Yes. The parser is PapaParse, which implements RFC 4180 correctly.
Can I use this offline?
Yes — save the page (⌘S / Ctrl+S) along with style.css and tool.js, then open it via file://. The only external dependency is the PapaParse library, which also gets saved.
Is anything uploaded?
No. See the privacy policy.