CSV Validator

Check CSV structure and get a per-column report.

Input
CSV input
Output
Result
Options

Detected automatically unless you pick one.

About this tool


CSV has no schema, so "valid" means structurally consistent: every row has the same number of fields as the header, quoting is well formed, and headers are usable as column names. This reports on all three, plus a count of empty values per column.

The per-column empty count is often the most useful part. A column that is 90% empty usually signals a mapping error in the export rather than genuinely missing data.

How to use it

  1. Paste or upload your csvDrop a file onto the input pane, use the file picker, or paste the text directly.
  2. Adjust the options if neededThe defaults suit most input; open Options to change the behaviour.
  3. ValidatePress Validate, or use Ctrl+Enter (Cmd+Enter on macOS).
  4. Copy or downloadCopy the result, or download it as a .txt file.

Worked examples


Each example below is executed against this tool by the test suite, so what you see is what the tool actually produces.

A file with a short row

Input

a,b
1,2
3

Output

Found 1 row with an unexpected field count

Columns:  2
Data rows: 2
Headers:  a, b

Issues:
  Row 3: has 1 field, expected 2

Empty values by column:
  b: 1

The report names the row and the counts so the problem is easy to locate. Column b is also listed as empty once, because the short row leaves it with no value.

What to watch for


The details that decide whether a conversion is correct, and where information can be lost without any error being raised.

Field count mismatches are listed by row
Each row whose field count differs from the header is reported with its line number and actual count. A row with too many fields almost always means an unquoted delimiter inside a value; too few usually means a truncated line.
Header problems are reported
Blank headers are named by position, and duplicate headers are reported because they break any conversion to a keyed format, a JSON object or YAML mapping cannot repeat a key.
Empty values counted per column
Every column gets a count of blank cells. This reveals both genuinely optional fields and columns that failed to populate during export.
What cannot be validated
Without a schema there is no way to check that a column contains valid dates, that a reference exists, or that a number is in range. This validates structure only. Line numbers refer to physical lines, so a quoted value containing a newline shifts them relative to record numbers.

Limitations


  • Validates structure, not content, no type, range or reference checking.
  • Line numbers refer to physical lines, which differ from record numbers when values contain newlines.
  • Processing happens in your browser, so very large inputs are bounded by available memory. Files above roughly 10 MB are handled but will feel slower, and multi-hundred-megabyte files are better suited to a command-line tool.

Questions


What does a valid CSV mean here?
Structurally consistent: uniform field counts, well-formed quoting and usable headers. Without a schema, content validity cannot be checked.
Why does a row have more fields than expected?
Almost always an unquoted delimiter inside a value. A value containing a comma must be wrapped in double quotes.
Can it validate that a column contains valid dates?
No. CSV carries no type information, so content checks need a schema this tool does not have.