Skip to content
Utiloom

CSV Viewer & Cleaner

Profile and transform bounded CSV data in an isolated worker, then export round-trip verified CSV, JSON, or NDJSON.

LocalNo dataset retention

Reviewed July 13, 2026

Guide, examples, and validation Show

About this tool

Move from raw CSV input to a reviewable data export while keeping parse errors, row counts, inferred types, and potentially executable spreadsheet cells visible.

CSV Viewer & Cleaner loads a CSV file or pasted text of up to 10,000,000 characters into a Web Worker running Papa Parse 5.5.3 and shows what is really inside. The source column profile lists each header with its inferred type and its unique and empty counts, the preview shows the first 100 rows, and parse errors from broken quoting or ragged rows are surfaced instead of silently patched. From there you can filter on one column, deduplicate on another, sort with numeric-aware ordering, and export the result as CSV, JSON, or NDJSON. Each export is re-parsed before the download button unlocks, so the saved file opens the way it was built. It also flags cells beginning with =, +, -, or @ that spreadsheets would treat as formulas.

  • Uses Papa Parse in a disposable worker for quoted fields, embedded line breaks, delimiter detection, and bounded structural checks.
  • Profiles column type, unique and empty values, assigns deterministic keys to empty or duplicate headers, and applies filtering, stable numeric-aware sorting, or first-row deduplication.
  • Detects formula-like spreadsheet cells, optionally neutralizes export values, and reparses every CSV, JSON, or NDJSON output before enabling download.

How to use CSV Cleaner

Paste into CSV input, open a file, or click Load sample. Set Delimiter to Auto detect unless you know the file uses a semicolon, tab, or pipe, then press Analyze and build export. The column profile and metrics appear: Input rows, Output rows, Filtered, and Duplicates removed. Choose a Filter column and type text into Filter contains for a case-insensitive substring match, pick a Deduplicate by column to keep the first row per value, and set a Sort column with a direction. Select CSV, JSON, or NDJSON as the Export format and tick Neutralize formulas if the file is headed for Excel or Sheets. Any change marks the result stale, so click Build updated export, check the Output preview, and use the Download button for the chosen format.

When this tool is useful

  • A marketing coordinator removes duplicate email addresses from a webinar export before loading it into the mailing platform.
  • A developer converts a 40,000-row CSV to NDJSON so it can be streamed into a bulk import endpoint.
  • An analyst checks whether an ID column is truly unique before using it as a join key in a report.
  • A support lead filters a ticket export down to rows containing one customer's domain for a case review.
  • A finance assistant inspects a bank export whose quoted descriptions contain commas and line breaks that broke another tool.

Practical tips

  • Rows that are entirely blank are dropped during parsing, so an output count slightly below the input count is not necessarily a filter effect.
  • Deduplication runs before sorting and keeps the first row in source order for each value, comparing exactly, so trailing spaces or case differences count as distinct.
  • Sorting is numeric-aware and stable, so 2 sorts before 10 in a text column and rows that tie keep their original order.
  • Empty or duplicated headers get generated keys so JSON output stays usable; rename them in the source if the keys need to be meaningful.
  • Ten seconds of worker time is the ceiling. If a large file times out, split it, or narrow the input before running the transformation.

Examples you can test

Load an example, compare the result with the expected output, then replace it with your own input.

Deduplicate a lead list

Example input

leads.csv with 1,240 rows and repeated email values; Deduplicate by email; Export format CSV

Expected output

Output rows 1,102, Duplicates removed 138, and a CSV that reopens with the same 1,102 rows

Because the first occurrence wins, sort the source by date in another tool first if the newest record is the one you want to keep.

Convert for a bulk import

Example input

products.csv with headers sku, name, price and a semicolon delimiter

Expected output

NDJSON with one object per line such as {"sku":"A100","name":"Lamp","price":"24.90"}

Values stay strings in JSON output; convert price to a number in the importer rather than expecting the CSV to carry types.

Validation checklist

  • Clear every parse error before trusting the row counts.
  • Compare Input rows and Output rows against what your filter should have removed.
  • Open the Output preview and check quoted fields survived intact.
  • Turn on Neutralize formulas before sending the export to spreadsheet users.
  • Open the downloaded file in its destination system and re-count rows.

Frequently asked questions

Is CSV data uploaded?

No. Parsing, filtering, profiling, and export run in your browser.

How are spreadsheet formulas handled?

Potential formula prefixes are reported. Optional neutralization adds an apostrophe to affected export cells without changing the source input.

What is the browser file limit?

Files and pasted input are limited to 10,000,000 bytes or characters. Datasets are also limited to 100,000 rows, 200 columns, 1,000,000 cells, 100,000 characters per cell, 20,000,000 output characters, and ten seconds of worker processing.

Related tools

Keep the workflow moving

Continue with tools that handle a related input, output, or validation step.

Developer

JSON Patch Builder & Applier

Build and atomically apply verified RFC 6902 JSON patches.

Local
Developer

JSON Schema Validator

Validate bounded JSON Schema and instance data locally.

Local
Developer

Unicode Inspector & Normalizer

Inspect and normalize Unicode text with encoding evidence.

Local
Developer

Accessibility Checker

Review WCAG contrast and isolated HTML audit evidence.

Local