CSV Viewer
A CSV viewer that reads the delimiter off the file and shows its working, types every column so prices sort by value, and downloads the filtered view under the file's own name.
CSV or TSV file
Drop a .csv, .tsv or .txt here
Or paste the rows below · nothing is uploaded
—
—
The file as a table
Rows
How to use
- Drop a .csv, .tsv or .txt on the file area, or paste the text into Paste CSV. The table appears as soon as the rows are read.
- Check the line under Delimiter. It says what Auto chose and why; if it is wrong, pick Comma, Semicolon, Tab or Pipe and the rows are read again.
- Untick First row is header if the export starts straight in on data. The headings fall back to Column 1, Column 2 and the top row rejoins the rows.
- Sort by pressing a heading: once for ascending, again for descending, a third time to put the file order back.
- Narrow the set with the box under a heading when you know which column holds the value, or with Search when you don't.
- Take the result with Download or Copy as CSV. Both carry every matching row, not just the page in front of you.
About this tool
Double-click a .csv and you get whatever your machine decided owns that extension, usually Excel, which will quietly strip the leading zero off every postcode on the way in. A CSV viewer ought to do less than that, so this one parses the text into a table and leaves your file alone. Drop a .csv, .tsv or .txt, or paste the rows into Paste CSV. The delimiter is read off the content, and the line under the Delimiter box shows its working: how many semicolons, commas, tabs and pipes each of the first fifty rows holds, so a wrong guess is visible before you go looking for it in the table.
Every column is typed when the file lands, and the type rides in the heading: Betrag · number, Kunde · text. A column counts as numbers when nine in ten of its filled cells read as one, with currency signs, percent signs and spaces ignored, and with the separator convention worked out per column, so $1,200 and 1.234,50 both sort by value. Codes with a leading zero, like postcodes, stay text and keep their zeros. Text sorts with case ignored and digits read as numbers, which is why Item 2 comes before Item 10, and empty cells always sink to the bottom.
Two kinds of filter run at the same time. Search tests your text against every cell in a row; the box under each heading only looks at its own column, and filling several narrows the set further. The strip under the table counts what is left, and Download is named for it: orders.csv when every row goes out, orders-filtered.csv when the view is narrowed, written with the file's own delimiter. The # column keeps each row's place in the file, so a row that jumps to the top after a sort still shows where it came from.
A large export is parsed off the main thread. The rows-so-far count climbs while it reads, the tab stays usable, and Cancel stops it. Once the table is up, Rows per page shows 50 to 1,000 at a time and the buttons under the table step through the rest.
A German order export, filtered
Say a shop exports orders and every line reads Bestellnr;Kunde;Betrag, with amounts like 1.234,50. Drop the file in and the Delimiter box reads Auto — semicolon, with the evidence underneath: two semicolons on every row, and one comma per row that never appears on the header, which is the decimal in each amount.
Click the Betrag heading twice and 12.400,00 comes first, because the column is typed as numbers in German format rather than sorted as text. Type GmbH into the box under Kunde and the strip says 248 of 1,240 rows; Download now reads orders-filtered.csv and hands over exactly those rows, still semicolon-separated.
Good to know
- Cells are read-only. You can sort, filter and export what's in front of you, but there's no editing a value and writing it back to the file.
- Auto tries comma, semicolon, tab and pipe and nothing else. A file split on carets or tildes needs the CSV to XLSX Converter, which takes a typed separator.
- Empty lines are dropped during the parse, and short rows are padded with blank cells to match the widest row, so the table isn't a line-for-line picture of the text you handed it.
Frequently asked questions
My semicolon file opened as one giant column. How do I fix that?
Set Delimiter to Semicolon and the table redraws straight away. Auto usually gets it right, and when it doesn't, the counts under the box show why: a separator that appears the same number of times on every row, header included, is the one the file uses.
Why does my price column sort properly here when other viewers scramble it?
Because the column is typed before it is sorted. Strip the currency sign and the thousands separators and $10,500 is a number, so it sorts after $950 instead of before it. The same goes for German amounts like 12.400,00, whose convention is worked out from the column itself.
How big a CSV will this actually open?
There's no row limit written into it, so your machine decides. The parse runs in a worker with a running count and a Cancel button, and once the table is up only the current page is drawn while sorting and searching run over every row.
Does sorting or filtering change my original file?
It cannot. The contents are read into memory once and the table is built from that copy. Download writes a new file, named after the original with -filtered added when the view is narrowed, and leaves the original exactly where it was.
Can I filter two columns at once?
Yes. Every heading has its own filter box underneath, and filling in more than one narrows the result rather than widening it, since a row has to match every box you've typed in. Search stacks on top of that. Clear filters empties the per-column boxes and deliberately leaves Search where it is.
Missing something in CSV Viewer? Suggest a feature →
Tell someone who needs this.