FREE CSV TOOLS
Compare two CSV files or clean one up.
Prepare a customer list for import, or check price and inventory changes between two exports. Free, private, and ready in your browser.
CLEANING PREVIEW
Cleaned data
- Removed row
- Extra spaces removed
- Empty cell filled
Removed records are left out of this view and your download.
COMPARISON PREVIEW
What changed?
A inventory-september.csv vs B inventory-october.csv Sample data Change files ↓
Values show before → after. Added rows appear only in B; removed rows appear only in A. Reports protect cells that could run as spreadsheet formulas.
| Lines | Status | sku | product | price | stock |
|---|---|---|---|---|---|
| A 2 · B 3 | Changed · 1 cell | A-100 | Canvas tote | 24.00 | |
| A 4 | Only in A | A-102 | Linen apron | 32.00 | 18 |
| A 6 · B 2 | Changed · 1 cell | A-104 | Wool throw | 7 | |
| B 6 | Only in B | A-105 | Cedar coasters | 18.00 | 40 |
WHEN TO USE CSVLANE
Less spreadsheet checking. More certainty.
- Before importing a contact list
- Remove empty rows, stray spaces and duplicate records.
- When a supplier sends a new price list
- Match by SKU to see changed prices, added products and removed lines.
- When an export opens incorrectly
- Choose the right encoding or switch between commas, semicolons and tabs.
How matching works, supported formats and questions
One key or a combination. A report you can hand over.
Match up to three key columns, such as customer ID and region. Review how differently named columns pair up, then download changed, added or removed records—or a complete status report with source line numbers. Large files are processed in a local background worker with a cancel button; files never leave this browser.
What the workbench handles
Real-world CSV
- Commas and line breaks inside quoted cells
- Escaped quotes:
"Sam ""Sammy"" Ito" - UTF-8 BOM from Excel exports (detected and kept on download)
- Files that are not UTF-8: Windows-1252 is detected; Shift_JIS, GBK, Big5, Cyrillic, UTF-16 and more can be chosen. Downloads are UTF-8
- Comma, semicolon, tab and pipe separators, in and out
Problems it points out
- Short rows: filled with empty cells and marked
- Rows with extra filled cells: download stops and the line is named
- Unclosed quotes: the starting line is named
- Duplicate or empty key values when comparing, including combined keys
Private by design
Files are read by this browser tab and never sent anywhere. The page only remembers your option choices on this device. Files up to 15 MB each; the table previews the first 400 rows and downloads include every row.
Questions
How do I remove duplicate rows from a CSV?
Open your CSV. “Remove duplicate rows” is on by default and matches the entire row; you can match by one column instead, ignore upper/lower case, and keep the first or the last copy. Each removed row is marked with the line that is kept.
How do I compare two CSV files?
Switch to “Compare two CSVs,” add the earlier file as A and the newer file as B, and pick a shared column with a unique value in each row (a filled, unique column is suggested). The table marks changed cells, rows only in A and rows only in B across columns with matching names. You can ignore differences in upper/lower case or in spaces at the start or end of a cell.
Are my files uploaded or stored?
No. Your files are read and processed in the browser. No account or upload endpoint is used. The page remembers your option choices in this browser, never file contents. Optional analytics loads only after consent and does not receive file contents. Cloudflare Web Analytics counts visits and page speed and does not receive file contents either. You can check this yourself in your browser’s Network tab: how to check. See also the privacy notice.
What file formats and limits are supported?
Use CSV or TSV files up to 15 MB each; comma, semicolon, tab and pipe separators are detected. UTF-8 and UTF-16 are read directly, a file that is not valid UTF-8 is read as Windows-1252, and you can pick Shift_JIS, GBK, Big5, Windows-1251 and other encodings; downloads are UTF-8. Short rows are padded and marked. Rows with extra filled cells or broken quoting are pointed out by line number and must be fixed before downloading.
How do I change a CSV from semicolons to commas?
Open the file in Clean a CSV. The semicolon separator is detected automatically. Choose Comma in Output and download. Cells that contain a comma are quoted, so values such as 12,50 stay in one column. Semicolon, tab and pipe output are available too, and JSON (one object per row) for code and APIs. More on changing the delimiter.
Can a downloaded CSV run formulas in Excel?
A spreadsheet may treat a cell that starts with =, +, - or @ as a formula. Protect against spreadsheet formulas is on by default and adds an apostrophe before such cells; the page shows how many cells that affects. Turn it off for a file that goes into a database or another import, so values such as +44 phone numbers or @handles are not changed. The differences report is always protected, and plain numbers like -12.5 are never changed.
Worked examples
CSV cleaning & comparison guide
Download two small CSV files, compare them by ID, and check the three expected differences before using your own data. Task notes: remove duplicate rows from a CSV and convert a semicolon CSV to commas. Tested guides: open a CSV without changing it, compare two Excel files, check a CSV for errors and all guides.