CSV Viewer

Paste or drop a CSV, view it as a sortable table. Headers auto-detected, columns clickable to sort. Runs in your browser — no upload.

  1. Paste CSV into the textarea or click "Open file" to load one.
  2. Click "View as table" to render — headers come from the first row.
  3. Click any column header to sort by that column; click again to flip direction.
  4. Tab-separated and other delimiters are auto-detected by PapaParse.
What does it do?

Renders a CSV (or TSV, or other delimited text) as a clean HTML table. PapaParse handles the parsing — quoted fields, embedded commas, escaped double-quotes, and CRLF / LF line endings all work. Click any column to sort by that column; numeric columns sort numerically, others lexicographically. Output is in-page only — there is no editing or save-back.

Common gotchas

CSV looks simple but has more edge cases than people expect.

  • Embedded commas without quoting. A field like `Smith, John` (no surrounding quotes) gets split into two columns. Wrap such fields in double quotes: `"Smith, John"`.
  • Embedded double-quotes. Inside a quoted field, a literal `"` is escaped by doubling it: `"He said ""hi"""` decodes to `He said "hi"`.
  • Inconsistent column counts. Rows with fewer columns than the header get null for missing keys; rows with more columns trigger a parse warning. The table still renders.
  • Numeric IDs that lose leading zeros. `007` parses as the number 7. If leading zeros matter (zip codes, phone numbers), keep them as strings by quoting in the source CSV.
  • BOM at file start. Excel-saved CSVs often include a UTF-8 byte-order mark (`\uFEFF`) at the start. PapaParse strips it, but if you paste from a hex editor you may see it on the first header.
  • Mixed line endings. CRLF (Windows), LF (Unix), and CR (old Mac) are all recognized. If your output looks like one giant single row, the file may have no line breaks at all.
Frequently asked questions

Can I edit the table?

No — this is a read-only viewer. To edit values, modify the CSV in the textarea and click "View as table" again. For a full edit-and-save flow, use a spreadsheet app.

Does the sort order survive after re-render?

No — clicking "View as table" again resets sort to the original CSV order. Sort is purely a display layer; it does not modify the input.

How big a CSV can it handle?

Up to about 50 MB before the textarea slows down. The bottleneck is rendering, not parsing. For larger inputs, sample with `head -1000` first.

Does it support tab-separated values?

Yes — PapaParse auto-detects the delimiter from the first kilobyte of input. Tab, semicolon, pipe, and comma all work without configuration.

Is my CSV uploaded?

No. Everything runs in your browser — your data is parsed by JavaScript on this page and never sent to any server.

Why are my dates showing as strings?

Date inference is intentionally not done — date format ambiguity (`01/02/03`) is too risky to auto-detect. Sort works lexicographically on date strings, which is correct for ISO 8601 (`YYYY-MM-DD`) but wrong for slashed formats.