Free · no signup · no file upload

Count CSV rows locally in your browser

Choose a CSV and get an exact record count without sending the file to a server. The scanner also distinguishes CSV records from physical lines, checks column consistency, and identifies empty records.

What you get

  • Exact CSV record and data-row counts
  • Correct handling of quoted multiline fields
  • Column, blank-record, and uneven-row checks
  • Chunked processing in a background browser worker
Browser-only processing

JavaScript reads the selected file on this device. No file content is sent to DataOlllo, Vercel, analytics, or another server.

Choose a local CSV to count

CSV, TSV, or text files. The complete file is scanned locally for an exact result.

or drag and drop the file here

No file transferNo processing API or cloud storage.
No file loggingNames and contents are not sent to analytics.
Source unchangedThe browser only reads your selected file.

A CSV record is not always one physical line

Counting newline characters works only for simple files. A valid CSV field can contain a line break when the value is enclosed in quotes. In that case, one logical record occupies multiple physical lines, and a basic line counter reports the wrong number.

This tool parses quote boundaries and escaped quotes while reading the file in chunks. It reports both logical CSV records and physical text lines so you can use the number that matches your import limit, audit, or data-quality check.

  • Quoted line breaks stay inside a record
  • CRLF and LF endings are recognized
  • A likely header is separated from data records
  • Trailing newlines do not invent an extra record

Use the count before an import or handoff

Row counts are useful when a CRM, spreadsheet, database loader, advertising platform, or reporting system imposes a record limit. An exact count lets you decide whether the source fits, how many batches are needed, and whether records disappeared during an export.

The structural checks add context to the total. Empty records may inflate a naive line count, while uneven column counts can reveal malformed quoting or missing separators. Review those warnings before treating the result as an import-ready total.

  • Confirm source and destination totals
  • Estimate the number of import batches
  • Spot empty records before loading
  • Find inconsistent record widths early

Private processing without a Vercel function

Selecting a file gives JavaScript in this page permission to read that local file. The browser passes it directly to a Web Worker, which scans small chunks and returns summary numbers to the page. There is no upload endpoint, server action, temporary cloud file, or server-side parser in this workflow.

The source stays unchanged. DataOlllo does not send filenames, headers, field values, or file contents to analytics. Ordinary website assets and privacy-safe page analytics may use network requests, but the selected file data is not included in them.

Common questions

Does this count the header row?

The total CSV-record result includes every parsed record. When the file appears to have a header, the separate data-record result subtracts the first record. This keeps both interpretations visible.

Why is the CSV record count different from the line count?

Quoted fields may contain line breaks, so one CSV record can span several physical lines. Empty lines and the final newline can also make simplistic counts disagree.

Is my CSV uploaded anywhere?

No. The selected File is read by a browser Web Worker. This tool has no API route, server action, or remote file-processing request.

Can it count a very large CSV?

The scanner reads chunks instead of loading the complete text into one JavaScript string. Practical speed still depends on the browser, storage device, file structure, and available system resources.