CSV Viewer
Open a CSV or TSV file, or paste the text, and read it as a table. Sort and filter the rows, hide and reorder columns, check column statistics and export what you see as a new CSV file. The file never leaves your device.
Open or paste your data
Loading…
Table
Columns
Untick a column to hide it. The arrows move it one place earlier or later.
Click a column name to sort it (again to reverse, a third time for the
original order; Shift+click adds a second sort column). Column filters:
text contains, =text exact, !text excludes,
>10, <=2024-06-30. Click a cell to see its full value, or focus the table and use the arrow keys, then Enter.
Export the current view
Column statistics
Most common values
| Value | Count | Share |
|---|
Everything runs in this browser tab: files are read on your device and nothing is uploaded.
How to use the CSV viewer
- Click Open a file and pick a
.csv,.tsvor.txtfile, drop the file anywhere on the page, or paste the text into the box. A sample table is loaded first. - Read the summary under the box: rows, columns, the delimiter found and, for a file, the encoding. If all the data sits in one column, choose the delimiter yourself.
- Untick First row is a header when the data has no column names. The columns are then called Column 1, Column 2 and so on.
- Click a column name to sort ascending, again for descending and a third time for the original order. Shift+click another column name to add it as a second sort key. The # button always restores the original order.
- Type in Search to keep rows that contain your words in any visible column, or in the box under a column name to filter just that column.
- Open Columns to hide or move columns, pick a column under Column statistics, and save the result with Download CSV or Copy CSV.
How it works
Parsing. The text is split according to RFC 4180, the usual definition of
CSV. A record ends at a line break (CRLF, LF or CR), fields are separated by the delimiter, and
a field wrapped in double quotes may contain the delimiter, line breaks and quote characters,
which are written twice (""). Blank lines are skipped, and rows with fewer fields
than the widest row get empty cells.
Delimiter detection. The first 50 records are read with a comma, a semicolon, a tab and a pipe. The winner is the delimiter that gives the largest share of rows the same number of fields (at least two); a tie goes to the one with more columns.
Column types. Up to 5,000 non-empty values per column are checked. If at
least 90% are numbers, it is a number column; otherwise, if at least 90% are dates, a date
column; anything else is text. Numbers may use a decimal point (1,234.5) or a
decimal comma (1.234,5). Dates are recognised as 2024-03-09
(optionally with a time), 9.3.2024 and slash dates; 03/09/2024 is read
as month/day unless a value in the column starts with a number above 12. The type is shown
under each column name; cell text is never changed.
Sorting. Number columns sort by value, date columns by time and text
alphabetically, ignoring case and accents, with numbers inside text in natural order
(item 2 before item 10). Empty cells always go last; in a number or
date column, cells that are not numbers or dates come just before them. The sort is stable:
rows that compare equal keep their original order.
Filters ignore letter case. In a column filter:
paris– the cell contains the text;!paris– it does not;=paris– the whole cell equals the text (in a number column, the number);=alone finds empty cells and!alone filled ones;>80,>=80,<80,<=80– compare numbers or dates, for example<2024-01-01.
In Search, several words must all appear somewhere in the row; put a phrase in double quotes to search for it as a whole.
Statistics describe the rows that pass the current filters.
mean = (x₁ + x₂ + … + xₙ) / n, where x₁ … xₙ are the numeric values of
the column and n is how many there are. The median is the middle value after
sorting, or the average of the two middle values when n is even. Results are
rounded to 12 significant digits.
Examples
1. Statistics of the sample. Column statistics opens on score. The column has 6 rows, 1 empty cell and 5 unique values. The numbers are 88.5, 92, 75.25, 100 and 61, so the sum is 416.75 and the mean is 416.75 / 5 = 83.35. Sorted they read 61, 75.25, 88.5, 92, 100, so the median is 88.5.
2. A stable date sort. Click joined. The rows become Dana (2022-07-30), Farid (2023-05-21), Bob (2023-11-02), Alice (2024-01-15), Eve (2024-01-15) and Chen (2024-03-09). Alice and Eve share a date, so they keep their original order.
3. Two filters together. Type >=88.5 under score:
3 of 6 rows remain (Alice 88.5, Bob 92, Eve 100). Then type paris in Search and
only Alice is left, because Bob lives in New York and Eve in Lisbon.
4. Semicolons and decimal commas. Paste this text:
product;price
Tea;3,50
Coffee;4,20
Cake;12,00
Juice;2,30
The delimiter is detected as a semicolon and price becomes a number column with a decimal comma. Sorting it gives Juice, Tea, Coffee, Cake, while a plain character-by-character sort would put Cake (12,00) first. The mean is 22 / 4 = 5.5 and the median is (3.5 + 4.2) / 2 = 3.85.
Reading toString() lines as a table
Switch the input format to Object lines for program output where each line
holds one object, such as Person(name=Alice, age=34, city=Paris, tags=[admin, dev]).
Every key becomes a column, in the order the keys first appear. Round, square and curly
brackets are accepted. A comma inside nested brackets or quotes stays in the value, so
tags above holds [admin, dev] in one cell. Text before the object (such
as a timestamp) is ignored, lines without an object are listed as skipped, and different object
names add a class column. The four sample people give an age mean of 32.75
and a median of 31.5.
Common CSV problems
- Semicolon files. Where decimals are written with a comma, spreadsheet programs often save CSV with semicolons. Auto-detection handles that; the export lets you choose the delimiter.
- Leading zeros. Codes like
01234are shown and exported exactly as written; numbers are only interpreted for sorting, filters and statistics. - Line breaks inside a cell. They are allowed in a quoted field. The table shows them as ↵; click the cell to see the full text.
- Broken quotes. A missing closing quote swallows the rest of the file into one cell. The summary warns about it.
- Wrong letters. A file that is not valid UTF-8 is read as Western European (cp1252) and the summary says so; if letters still look wrong, choose another file encoding.
Frequently asked questions
Why is all my data in one column?
The delimiter was not recognised, usually because the text has very few lines or an unusual separator. Choose Comma, Semicolon, Tab or Pipe in the Delimiter list.
Does sorting or filtering change my file?
No. The original stays untouched; Download CSV and Copy CSV create new text containing exactly the current view.
How large a file can it open?
It was tested with 100,000 rows. Only the rows on screen are drawn, so scrolling stays smooth; the limit is your device's memory. Files with hundreds of columns scroll more slowly.
Why does a column of numbers sort like text?
More than 10% of its non-empty values are not plain numbers, for example values with units
(12 kg), currency or percent signs. The type under the column name shows how it is
treated.
Is my data uploaded anywhere?
No. The file is read by JavaScript inside this browser tab and is never sent to a server. Only your settings and pasted text (up to 500,000 characters) are remembered in this browser's local storage.
Related tools
- CSV to JSON Converter — convert CSV rows to JSON and back.
- JSON Formatter — format, validate and minify JSON data.
- List Compare — compare two lists item by item.
- Histogram Maker — draw the distribution of a column of numbers.
- Correlation & Covariance Calculator — measure how two numeric columns move together.
- Regex Tester — build patterns to match or clean values.