Clever Quest Lab Tools

CSV Viewer

2026-10-17

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

Input format

or drop a CSV, TSV or text file anywhere on this page
Used for opened files only; pasted text is already decoded.
Column names

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

      Byte order mark

      Column statistics

      Summary of the selected column

      Most common values

      ValueCountShare

      Everything runs in this browser tab: files are read on your device and nothing is uploaded.

      How to use the CSV viewer

      1. Click Open a file and pick a .csv, .tsv or .txt file, drop the file anywhere on the page, or paste the text into the box. A sample table is loaded first.
      2. 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.
      3. 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.
      4. 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.
      5. 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.
      6. 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:

      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

      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