Validate data types, ZIP codes, phone numbers, NPIs, US states, dates, and required fields against per-column rules — then fix errors in place and export to CSV, JSON, or Excel. 100% in your browser; your data never leaves your computer.
Paste, drop, or open your data
Press Ctrl+V to paste from Excel or a text file, drag a CSV or Excel workbook here, or use Open file above. The separator is detected automatically.
Set per-column rules and the validator flags every cell that doesn't match — then fix errors in place before you import. Common checks:
Data types & formats — number, integer, boolean, date, and required fields, with configurable missing-value handling (NULL, N/A, and custom sentinels).
Business fields — validate ZIP codes, US phone numbers, US state codes, email addresses, SSN, EIN, and NPI (with Luhn checksum) — and normalize them to a consistent format.
Time series gaps — find missing dates in a daily, weekly, or monthly series (no pandas, no SQL) — including Unix epoch timestamps in seconds or milliseconds.
Sequence gaps — spot holes in numeric ID or invoice sequences (1001, 1002, 1004 → 1003 missing).
Duplicates & blanks — highlight duplicate rows, empty rows, and columns with missing values.
Everything runs in your browser — your data is never uploaded. Export clean data to CSV, JSON, JSONL, or Excel, and save your validation rules to reuse on the next file.
Help & keyboard reference–no data
Loading data
Paste (Ctrl+V) from Excel or a text editor — the separator is auto-detected
Drag & drop a CSV or Excel file onto the grid
Open file reads .csv, .tsv, .txt and Excel .xlsx/.xls; encoding auto-detected (or force it in the dropdown)
Start a blank sheet / New sheet for typing from scratch — it grows as you Tab or arrow past the edges
Editing cells
Double-click a cell to edit with the cursor where you clicked
F2 or Enter edits with the cursor at the end; just start typing to replace
Enter commits and moves down, Tab moves right, Esc cancels
Ctrl+E opens a cell with newlines/tabs in a full editor
Copy/Cut/Paste (Ctrl+C/X/V) work on ranges, Excel-compatible; Delete clears
Ctrl+Z undo, Ctrl+Y redo
Columns & rows
Click a header to sort (A→Z, Z→A, off). Empty cells go first ascending, last descending
Double-click a header to rename it (needs "First row is column names")
Drag a header to reorder; drag its edge to resize
Validate (toolbar) flags cells that don't match their column's type; Rules… opens a per-field matrix (type incl. Boolean, business formats like ZIP/phone/US state/email/NPI, required, min/max, length, allowed values, regex, custom JS, and Auto-fix). Common missing-value tokens (NULL, N/A, -, .) count as blank for Required. Show only invalid rows filters to them; fixing a cell clears its flag live
Click the type badge (I/N/D/S) for column stats and the detected format; File stats (toolbar) summarizes the whole file — rows, cells, empty rows, duplicate rows
Right-click a header, row number, or cell for context actions
Find, filter & transform
Ctrl+F or Find & replace — text, regex ($1 groups), match-case, whole-cell, scoped to selection or all
Filters row: type text, or >10<5!=x/regex/(empty)(nonempty)(dups) — (dups) shows only rows whose value repeats in that column
Transforms (right-click): UPPER, lower, Title Case, Trim, remove accents
Date format / Number format (column menu) reformat in place; Unformat strips currency/grouping to plain numbers
Empty rows & saving
Row tools bar: Highlight duplicates colors repeated rows, Show only duplicates filters to them grouped, Remove duplicates keeps the first of each
Right-click a column header → Highlight duplicate values to spot key collisions (e.g. a repeated ID); sort by that column to compare the rows before deciding what to keep
Row tools bar: Remove trailing drops blank rows at the bottom, Remove all empty clears interior blanks too
Skip trailing empty rows (footer) leaves bottom blanks out of the saved file automatically
Download CSV with your choice of separator, line ending, and header; JSON (objects when headers exist, else arrays), JSONL (one record per line), or Save as Excel. "Type JSON values" turns numbers/booleans into real types (identifiers with leading zeros stay strings)