CSV Viewer

View CSV, TSV or PSV data as a table — auto-detected delimiter, row and column counts and per-column types — entirely in your browser.

  • Runs locally in your browser
  • No upload required

Capabilities

  • Drag and drop
  • Local file intake

Try it

Read locally in your browser; never uploaded.

Used only when the delimiter is Custom.

Paste delimited text or choose a file, then run the tool. Everything happens in your browser.

Supported formats

Input
text/csv, text/tab-separated-values, text/plain
Output
text
Files
Local file intake and drag/drop

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

Parsed 2 data row(s) and 2 column(s) using a comma delimiter.

How it works

  • Auto-detected a comma delimiter (high confidence).
  • Skipped 0 leading line(s), parsed quoted fields and reported malformed rows.
  • Inferred each column's type conservatively without altering any cell.
  • Nothing is uploaded; the table is built locally in your browser.

Methodology

  1. Score comma, tab, pipe and semicolon by the consistency of the column count across the sampled records outside quotes, and report the winner with its runner-up.
  2. Parse with an RFC 4180 state machine that handles quoted fields, embedded delimiters/newlines and doubled quotes, bounded by explicit row/cell/character caps.
  3. Infer each column's type as boolean, integer, number, date or text only when every non-empty cell matches; otherwise report text.

Usage

  1. Paste delimited text or choose a local .csv/.tsv/.psv file.
  2. Choose the delimiter (or leave it on auto-detect) and set the quote and header options.
  3. Read the table, counts and inferred types; adjust the options if the delimiter was mis-detected.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

Auto-detect a small CSV

jsonSelect to copy
{
  "text": "name,role\nAda,pioneer\nAlan,engineer",
  "delimiterMode": "auto",
  "delimiter": ",",
  "quote": "\"",
  "firstRowHeader": true,
  "skipRows": 0,
  "trim": false
}

View tab-separated data

jsonSelect to copy
{
  "text": "id\tvalue\n1\t42\n2\t7",
  "delimiterMode": "tab",
  "delimiter": ",",
  "quote": "\"",
  "firstRowHeader": true,
  "skipRows": 0,
  "trim": false
}

Limitations

Delimiter detection you can audit

The viewer scores each candidate delimiter by running the parser with it and measuring how consistently the column count holds. The chosen delimiter and its runner-up are both reported, so a mis-detection is visible rather than hidden.

Quoted fields are handled by a full RFC 4180 state machine: a quoted comma or newline never splits a cell.

Bounded, not unbounded

Parsing is incremental with explicit character, row and cell caps. Input past a cap is truncated with a named finding instead of freezing the tab.

Frequently asked questions

Is my data uploaded?
No. The table is parsed locally in your browser; nothing is uploaded, stored or logged.
Does it open Excel files?
No. Binary .xlsx/.xls/.ods spreadsheets are out of scope; paste or choose CSV/TSV/PSV text instead.

Sources

  1. RFC 4180 — Common Format and MIME Type for Comma-Separated Values (CSV) Files — IETF