csvkit.org
CSV (Comma-Separated Values) utilities, in the browser
Say hi →

Count Rows, Columns and Cells

records vs lines · columns · cells · non-empty · size · per-column fill

How many rows does this CSV actually have? Not the same question as how many lines the file has — a quoted field can contain newlines, so wc -l lies. This counts real CSV records, columns, cells, and how many of those cells are actually populated, and tells you when the two line counts disagree.

count
Or drop a .csv file here, or
ready

How to count rows in a CSV

  1. Paste the CSV or drop a file — dropping is better for large files and gives you the true byte size.
  2. Read data rows for the answer most people want: records excluding the header.
  3. Compare records against physical lines. If they differ, some fields contain line breaks.
  4. Check the per-column table for how many values each column actually has.

Why wc -l disagrees with your row count

CSV allows a newline inside a quoted field, so one record can span several lines in the file:

id,address
1,"12 Main St
Kyiv"

That's two records (header plus one row) across three lines. Line-counting tools report three, importers report one data row, and the disagreement is where "my import lost rows" tickets come from. This tool shows both numbers and flags multi-line fields explicitly.

What each number means

FAQ

Does it count the header as a row?

records includes it, data rows doesn't. If your file genuinely has no header, tick the box and both numbers agree.

Are blank lines counted?

Fully blank lines are not counted as records. They do show up in the physical line count, which is another reason the two numbers can differ.

Can I count how often a value appears?

Yes — Value counts for one column's frequencies, or Group & aggregate for counts per group.

Is the file uploaded?

No. Counting happens in your browser.

Privacy

100% client-side. No upload. See the privacy policy.