CSV Viewer

Open it, sort it, search it, however big it is, without uploading it.

Runs entirely in your browser

Advertisement

Loading the tool…

Your file is opened by this page and never uploaded. Nothing here talks to a network, and nothing is sent anywhere no matter how large it is.

Advertisement

Drop in a CSV and read it here, in this page. Nothing is uploaded, because there is no server behind this and no network code in it. Turn your connection off and it still works, which matters for the files people actually have in CSV: exports of customers, transactions, patient lists and payroll.

Size is the point. A spreadsheet gives up somewhere around a million rows and a text editor stops being usable long before that, mostly because both try to put the whole file on the screen. This does not: the file is parsed once into WebAssembly memory, and the page asks for the thirty rows it is about to draw. Scrolling a million-row file costs the same as scrolling fifty.

The separator is detected by looking for the character that cuts every line into the same number of fields, which is what actually distinguishes a separator from punctuation, and you can override it. Quoted fields are handled properly, so a comma or a newline inside quotes stays part of its value instead of breaking the row.

Sorting and searching do not move any data: they build an order and the page pages through that, so both stay quick on a large file. Sorting a column of numbers sorts it as numbers, so 2 comes before 10.

How to use it

  1. Choose a CSV. Nothing is uploaded when you do.
  2. Check the separator and whether the first row is column names.
  3. Sort by clicking a heading, and search to narrow the rows.

Questions

How big a file can it open?

Big enough that the limit is your machine rather than the tool. The file is held in the tab's memory once, and only the rows on screen are ever drawn, so scrolling stays smooth at sizes where a spreadsheet would have given up. Hundreds of megabytes are realistic on a desktop; a phone will run out of memory sooner.

Is my file uploaded anywhere?

No. The page reads it through your browser and parses it in WebAssembly on your own machine. There is no server behind this and no network request in the code, so disconnect and it still works. That is the whole reason to use this for an export full of customer records.

What if it is not comma separated?

It is detected: the separator is whichever of comma, semicolon, tab or pipe cuts every line into the same number of fields, which beats counting occurrences because prose is full of commas. You can also set it yourself, including a colon or any single character.

Are quoted fields handled?

Yes. A comma inside quotes, a doubled quote meaning a literal quote, and a newline inside a quoted field are all read the way the format defines them rather than by splitting on the separator, which is where most quick CSV tools go wrong.

Why do some rows have a different number of fields?

Because the file does, and that is worth knowing rather than hiding. The count is shown, and short rows are padded so the columns still line up. It usually means an unescaped separator inside a value somewhere upstream.

Can I sort by a column?

Click its heading. Click it again to reverse, and a third time to put the file back in its original order, which nothing else will give you back. A column of numbers sorts numerically, and blank cells go last either way, since a blank is not a small value.

Your data stays on your device

Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. There is no server. You can load this page once, go offline, and it still works.