UtilityKit

500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.

CSV Editor

Open, edit, deduplicate, and export CSV files in your browser

About CSV Editor

Most CSV "tools" are converters that read a file once and spit out another format. This is an actual editor. Open a .csv, edit cells inline, sort and filter rows like in Excel, find and replace across the whole sheet or just one column, mark a column as a primary key to surface duplicate IDs, validate columns against types or regex patterns, undo deep enough to recover any mistake, and export back out to CSV, TSV, JSON, JSON Lines, Markdown, or HTML. Column types are auto-detected, an Excel-style fill handle extends number and date series, your work autosaves to local storage every few seconds, and a statistics panel summarizes any column or selection. Everything runs locally — your data never leaves the browser tab and no account is required.

Why use CSV Editor

A real editor, not a converter

Sort, filter, find & replace, multi-cell paste from Excel or Sheets, an Excel-style fill handle, drag-to-reorder rows and columns, freeze the first column, resize columns, and undo 100 steps deep — the features you would open Excel for, without the Excel.

Primary-key duplicate detection

Toggle any column as unique and every duplicate value lights up in soft red with a live count in the status bar. The fastest way to find ID or email collisions in an export before importing it elsewhere.

Validation and type detection

Each column gets an auto-detected type (Number, Integer, Date, Email, URL, Boolean, Text) with a one-click override. Mark columns required, attach regex patterns, and see invalid cells highlighted live as you edit, with a running Invalid count.

Find & replace with regex

Whole-sheet, single-column, or selection-scoped replace, with case-sensitivity and whole-cell-match toggles. Replace-all is a single undo step.

Export anywhere

CSV (delimiter, line endings, quoting, and BOM all configurable), TSV, JSON, JSON Lines, Markdown, and HTML — download or copy any of them to the clipboard. Import handles non-comma delimiters, header and skip-row options, and legacy encodings.

Autosave, recovery, and zero upload

Your work mirrors to local storage every few seconds and a recovery banner restores it after an accidental close. Parsing, editing, and export all run in your browser tab — nothing is uploaded and no account is required.

How to use CSV Editor

  1. Drop a .csv file onto the page, click Open File, or click Start Blank to create a new sheet.
  2. Click any cell to edit it; click a column header to rename it. Tab moves across, Enter moves down.
  3. Right-click a row number, column header, or cell to insert, duplicate, clear, or delete rows and columns.
  4. Use a column's ⋯ menu to Mark as unique (PK) — duplicate values are highlighted with a live count in the status bar.
  5. Press Ctrl/Cmd+F to find, Ctrl/Cmd+Z to undo, and Ctrl/Cmd+D to duplicate the current row.
  6. Click the filename in the status bar to rename it, then press Ctrl/Cmd+S to open the export dialog and download a clean CSV.

When to use CSV Editor

  • Quickly fixing a vendor-supplied CSV before importing it into a database, ETL pipeline, or CRM — sort by date, filter to the bad rows, edit them, export.
  • Finding duplicate IDs or emails in an export from Stripe, Salesforce, HubSpot, or an internal system with the primary-key flag.
  • Cleaning a Mixpanel, GA4, or BigQuery export — remove empty rows, trim whitespace, and change case in a couple of clicks.
  • Roundtripping data between CSV and another format (JSON, JSON Lines, Markdown, HTML) without writing a script.
  • Working with sensitive data (PII, financial figures) that legally can't be uploaded to a third-party tool.
  • Validating that an export conforms to a schema — required columns, regex patterns, type expectations — before downstream processing.

Examples

A quoted, multi-line cell round-trips unchanged

Input: note "He said ""hi"" second line"

Output: note "He said ""hi"" second line"

Duplicate IDs flagged by the primary-key column

Input: id,email 1,a@example.com 2,b@example.com 1,c@example.com

Output: Mark the id column as unique (PK): the two rows with id "1" get a soft-red wash and the Dupes counter reads 2.

Tips

  • A column marked unique uses an exact-match check. Trailing spaces and case differences count as different values — run Tools → Trim whitespace or Change case → lower first if you want them treated as duplicates.
  • Sorting is non-destructive by default. Use "Apply sort to data" in the column menu to make the order permanent before export.
  • Drag the small square at the bottom-right of a selection to fill a series — a single number increments, two numbers set the step, and text like "row01" counts up.
  • Tab past the last cell of the last row to instantly add a new row; copy a range and paste straight into Excel or Sheets (output is tab-separated).
  • Press ? at any time for the full keyboard-shortcut list. Autosave lives only in your browser — refresh-recover from the banner, or clear it from Settings.

Frequently Asked Questions

Does any of my data leave the browser?
No. Parsing, editing, validation, autosave, and exporting all run in JavaScript inside this tab. There is no server-side processing and no analytics on your file contents.
Where does autosave store my work?
In your browser's localStorage for this site, readable only by this page. Your sheet is mirrored every few seconds while it has unsaved changes, and a recovery banner offers it back on your next visit. Clear it from Settings → Clear all preferences, or your browser's site-data settings.
What CSV dialects and encodings does it handle?
Anything RFC 4180-compliant: double-quote escaping (""), multi-line quoted cells, embedded commas, and \r\n / \n / \r line endings. The Open-with-options dialog also handles semicolon, tab, and pipe delimiters, a header toggle, skip-first-N-rows, and Windows-1252 / ISO-8859-1 encodings for older exports.
What formats can I export to?
CSV (with configurable delimiter, line endings, quoting, and BOM), TSV, JSON (array of objects), JSON Lines, Markdown table, and HTML table. You can download the file or copy the formatted output straight to the clipboard, and optionally exclude hidden columns.
What does "primary key" mean here?
It is a borrowed term — when a column is marked unique, any value that repeats in it is flagged in red. It is how a relational database would catch a duplicate primary key on insert, surfaced visually before you import.
How does validation work?
Each column has an auto-detected type you can override, and you can mark a column required or attach a regex pattern. Cells that are empty-when-required, fail the pattern, or do not match the column type are highlighted live, and the stats bar shows a running Invalid count. Validation never changes your data — it only highlights.
How big a file can I edit?
Tested smoothly at around 5,000 rows by 20 columns. Only the visible rows are rendered, so scrolling stays fast. Much larger files open but interactive editing gets heavier; for one-shot conversions consider the CSV to JSON or CSV to XLSX tools.
Can I sort by more than one column, and does sorting change my data?
Yes — click a header to sort, then Shift+click another to add up to three keys. Sorting is non-destructive by default: it reorders the view, not the underlying data, until you choose "Apply sort to data" in the column menu.
Why does Ctrl/Cmd+S open a dialog instead of downloading immediately?
So you can name the file and pick the format and options deliberately. Browsers do not expose a real "Save As" to web apps, so the export dialog is the closest equivalent.

Explore the category

Glossary

RFC 4180
The informal standard that defines how CSV files are structured, including quoting rules for fields that contain commas, newlines, or double-quote characters.
Header row
The first row of a CSV file that names each column. In this editor the header row is editable, and an empty header falls back to a Column A, Column B label.
Quoted field
A CSV field wrapped in double quotes, letting it contain the delimiter, newlines, or literal double-quote characters without breaking the row.
Primary key
In a database, a column whose values must be unique across all rows. This editor borrows the term for its per-column uniqueness flag, highlighting any value that repeats.
Validation
Rules attached to a column that flag cells failing them (required, regex pattern, type-match). Validation never modifies data — it only highlights.
Autosave
A periodic background save of the editor state to the browser's local storage so a tab close or refresh doesn't lose work. Distinct from export, which writes a file to disk.
Frozen pane
A row or column that stays put while the rest of the table scrolls. The header row is always frozen; the first column can be frozen from the View menu.
Undo stack
The list of past states the editor remembers so each Ctrl/Cmd+Z steps back one mutation, up to the configured limit (50–250 steps).