CSV Inspector
Drop a CSV, see row / column counts, per-column type inference, null counts, unique counts, and full-row duplicate detection — all locally.
Rows
5
Cols
6
Duplicates
0
| Column | Type | Empty | Unique | Sample |
|---|---|---|---|---|
| id | number | 0 | 5 | 1 |
| name | string | 0 | 4 | Alice |
| string | 1 | 4 | alice@example.com | |
| age | number | 1 | 4 | 30 |
| signup | date | 0 | 4 | 2024-01-15 |
| verified | boolean | 0 | 2 | true |
Everything runs in your browser — your data never leaves the device.
How to use
- Drop a CSV / TSV file or paste data directly into the box.
- Toggle the header-row checkbox to match your data.
- Read the row / column / duplicate cards, then the per-column type table.
About this tool
ShowHide
Auto-detects the delimiter from the first line (comma, tab, semicolon, pipe) and parses with proper RFC 4180 quoting. Each column gets a quick type inference (number, boolean, date, string) plus a count of empty cells, the number of distinct values, and a sample. Full-row duplicates are surfaced as a separate metric. Type inference runs down the whole column rather than sampling, so one stray value in an otherwise numeric column reports as a string — which is exactly the warning you want before an import fails halfway. The distinct-value count is the other tell: a column with a handful of distinct values across thousands of rows is an enum or a foreign key, not free text.
Frequently asked questions
What counts as a duplicate?
An exact match across all fields. A row where one cell differs by a single character is not a duplicate. Use a dedicated dedupe step in your pipeline if you need fuzzy matching.
How accurate is the type inference?
Best-effort. A column passes as number only if every non-empty cell parses as a number, and similarly for boolean and ISO-ish dates. Mixed columns fall back to string rather than guessing.
The delimiter was detected wrong — why?
Detection reads the first line only. A file whose first line is a title rather than a header, or whose header contains commas inside quoted text, can tip the guess towards the wrong character. Pasting a few representative data lines instead of the whole file is usually enough to get a correct read.
Why does one row have far more columns than the rest?
Almost always an unbalanced quote somewhere above it. A single stray double quote makes the parser treat everything that follows as one long quoted field until it meets the next quote, so rows merge and field counts go wild. Fix the quote rather than the row that looks broken — the damage starts earlier in the file.
Guides on this topic
Related tools
CSV Column Extractor
Paste CSV/TSV, click the columns you want, get them back as plain lines, CSV, quoted-comma-separated, or a ready-made SQL IN-clause.
File
Fixed-Width Text Parser to CSV / JSON
Split fixed-width / fixed-column text into fields by column widths and export as CSV or JSON, in your browser.
Convert
CSV ↔ JSON Converter
Convert CSV to JSON and JSON back to CSV, with a delimiter option.
File
Excel (XLSX) to CSV, JSON & Markdown
Open an .xlsx workbook in the browser and export any sheet as CSV, JSON or a Markdown table — the file never leaves your device.
File
CSV to Excel (XLSX) Converter
Turn CSV or TSV into a real .xlsx file in your browser, with leading zeros, long IDs and codes like SEPT1 kept exactly as typed.
File
CSV Splitter (by rows)
Split a large CSV into smaller chunks by row count — repeat the header on each chunk, download all at once.
File