Data & Sheets tools
Forty-two tools for converting, comparing and cleaning table data: CSV, Excel, JSON, XML and YAML. Each one runs inside your browser, so the file never leaves your machine.
Asset Register & Maintenance Log
Track equipment, depreciation and what maintenance is due.
Email List Cleaner & Validator
Tidy a mailing list: syntax, duplicates, aliases, role and disposable addresses.
Contact Merger & Deduplicator
Merge contact exports and settle the duplicates field by field.
Address Parser & Formatter
Split messy one-line addresses into proper fields, then reformat them.
Guest List & RSVP Tracker
Track invitations, replies, headcount and meal choices in one list.
Inventory & Stock Count Sheet
Stock levels, reorder alerts and a count sheet that shows the variance.
Waiting List & Queue Tracker
Fair positions, offers recorded, and a wait estimate from real throughput.
CSV to JSON
Convert CSV or TSV to JSON, and JSON back to CSV.
Excel Converter
XLSX to CSV, JSON or the other way round.
CSV Viewer & Editor
Open a big CSV, sort, filter and edit it in a table.
Deduplicate & Merge
Remove duplicate rows or merge several CSV files.
CSV Splitter
Break a huge CSV into smaller files by row count.
YAML / XML / JSON
Convert freely between YAML, XML and JSON.
Chart Maker
Paste data, get a chart, download it as PNG.
CSV Merge
Join two CSV files on a shared column.
CSV Compare
See what changed between two versions of a file.
Pivot Table Maker
Group and summarise data like a pivot table.
Statistics Calculator
Mean, median, spread, quartiles and outliers.
Table Converter
Convert tables between CSV, Markdown, HTML and JSON.
Fixed Width Converter
Turn aligned text columns into proper CSV.
SQL on a CSV
Run SELECT queries against a CSV file.
CSV to Contacts
Turn a spreadsheet into a vCard contacts file.
CSV to Calendar
Turn a list of events into an importable calendar file.
Map Data Viewer
View and convert GeoJSON, GPX, KML and coordinates.
Data Anonymiser
Replace personal details with realistic fake ones.
Sample Data Generator
Make test rows as CSV, JSON or SQL.
Data Extractor
Pull emails, links and numbers out of text.
vCard to CSV
.vcf contacts to a spreadsheet.
Calendar File Viewer
Read .ics files; export events to CSV.
Bulk QR Generator
A CSV in, a sheet of QR codes out.
Markdown Table Editor
Edit Markdown tables in a real grid.
CSV Data Profiler
Column types, missing values and data quality checks.
ID & Check Digit Validator
Check IBAN, ISBN, EAN, VIN, IMEI and card numbers in bulk.
Nested JSON Flattener
Flatten nested JSON into CSV columns, and put it back.
Weighted Decision Matrix
Score options against weighted criteria and rank them.
Mail Merge
Merge a CSV into a letter, email or certificate template.
Fuzzy Match & Join
Join two lists that share no exact key, with a score per pair.
Broken CSV Repair
Diagnose and fix a CSV that will not open properly.
Unpivot & Reshape
Turn wide columns into tidy rows, and back again.
CSV to SQL Script
Generate CREATE TABLE and INSERT statements from a CSV.
Time Series Resampler
Resample timestamped rows onto a regular interval.
Bank CSV to QIF
Convert a bank or card CSV export into a QIF file.
What these tools are for
Most of this category exists to move a table from one shape into another. Table Converter and the YAML / XML / JSON tool swap between formats. Nested JSON Flattener turns an API response full of objects inside objects into plain rows and columns. CSV to SQL Script writes the insert statements for you. vCard to CSV and CSV to Contacts cover the awkward gap between address books and spreadsheets.
The rest is clean-up and comparison. CSV Compare shows what changed between two exports. Fuzzy Match & Join lines up two lists that nearly agree. Data Anonymiser is for removing identifying details before you send a sample to someone. Address Parser & Formatter splits one long address field into parts. A few are small record keepers rather than converters, such as Asset Register & Maintenance Log and Waiting List & Queue Tracker.
What changes when the work happens locally
Spreadsheets tend to be the most sensitive files an office holds: customer lists, payroll, bookings, supplier prices. The sticking point with an online converter is rarely the conversion. It is the upload. Here the page reads the file straight from your disk, so there is no upload step at all, and no queue behind it. Once the page has loaded, the tools keep working with the network off.
The trade-off is genuine. Your browser tab holds the whole table in memory, so the practical size limit is your own machine rather than someone's server plan. A very large file feels slow on an old laptop and fine on a new one. There is also no automation. Nothing runs on a schedule and there is no API to call, so each job is one you do by hand.
Choosing a tool, and what to check first
Start by naming the job. If you are changing shape, reach for Table Converter or Nested JSON Flattener. If you want to know what differs between two files, use CSV Compare. If two lists should agree but the keys are typed slightly differently, Fuzzy Match & Join is the one. If you simply want to see the rows and fix a few by hand, open CSV Viewer & Editor or the Markdown Table Editor.
The common problem is usually not the tool. It is the CSV. Fields containing commas, stray quotes, mixed date formats and trailing spaces all come out of ordinary spreadsheet exports, and they break joins quietly rather than loudly. Scan a few rows before you convert anything. With fuzzy matching, read the matches it proposes instead of trusting them. Keep the original file untouched so you can start again.
Before you see a table: what the shared CSV parser has already decided
Thirty-eight of the forty-two tools here have no CSV reader of their own. They share one file, assets/js/csv.js, so the awkward guesses are made once instead of forty-two times. The first guess is the separator. It reads the first line and counts commas, semicolons, tabs and pipes, but only the ones sitting outside quotes. Count them all and a quoted address with a comma in it would out-vote the semicolons in a European export. Whichever character wins is used, and a first line with none of them is read as comma separated.
The header row gets the second guess. Blank and repeated names are renamed, never merged. A blank third header becomes column 3, and a second Name becomes Name (2). Merging them would drop a column without a word, and a missing column is very hard to spot an hour later. Numbers get the third guess. A value only becomes a number when the number prints back as the same text, so 007 stays the text 007. That single rule is why postcodes, phone numbers and account numbers come through a conversion intact.
Writing is stricter than reading. Lines go out ending in a carriage return and a line feed, which is what RFC 4180 asks for. Reading accepts that, plain line feeds, and the bare carriage returns still found in very old Mac files. A field is wrapped in quotes if it holds the separator, a quote, a line break, or a space at either end that a reimport would otherwise eat. The parser is also not a streaming one, and that is on purpose: the file arrives as a single string in memory, which is easy to check line by line and is the real reason there is a size ceiling.
An .xlsx is a zip full of XML, which is why a browser can open one
Excel Converter is not sending your workbook off to be converted, and it does not need to. A file ending .xlsx is a ZIP archive holding XML. One part describes the workbook, one holds every distinct piece of text in it, and there is one more for each sheet. Reading is unzip, read the text table, walk the cells. Writing is that in reverse: the converter builds the smallest set of parts Excel will accept and stores them without compression, which a ZIP is allowed to do and which keeps the writer short enough to read through.
The same design explains what does not survive the trip. The converter reads cell values and never opens the styling part of the file, so a date arrives as the number Excel keeps underneath it. A cell holding a formula hands over the value Excel last saved there, not the formula. Going the other way, the file it writes carries values only: no formulas, no number formats, no column widths, no colours. Sheet names are cut to 31 characters. Ask for every sheet at once and you get one CSV per sheet inside a ZIP, each with a byte order mark on the front, because without those three bytes Excel reads a UTF-8 CSV in the local codepage and every accented letter turns to rubbish.
One file type is turned away at the door. The old .xls from before 2007 is a binary format with nothing in common with .xlsx, so the page stops and asks you to open it in Excel and save it again. Handling it would mean carrying a second, larger parser for a format that was replaced in 2007.
Money, blanks and near-matches: three places the arithmetic is done the slow way
Bank CSV to QIF holds every amount as a whole number of pence, paise or cents, read off the digits in the text rather than obtained by multiplying a decimal. 0.1 has no exact form in binary floating point, so a few hundred amounts added that way drift, and a balance check that is out by a penny it invented itself is worse than no check at all. Whole numbers add exactly, so the total either matches the statement or it does not. The same tool settles the decimal separator once for the whole column instead of row by row, because 1,234 is one thousand in one country and one and a bit in another, and only the column around it can decide which.
CSV Data Profiler measures on the values that are actually present. A mean over 900 numbers and 100 blanks is the mean of 900 numbers; scoring the blanks as zero would drag it down and say nothing. It also names a column by its dominant type rather than insisting every cell agree. Five thousand whole numbers with one cell reading N/A is an integer column with one problem in it, not a text column, and the count of values that break the type is the number you were looking for.
Fuzzy Match & Join is the one with hard ceilings, and they are arithmetic as well. Two lists of three thousand rows are nine million comparisons, and one comparison timed at roughly a microsecond in Chromium. So it takes at most 20,000 rows per list, looks at the first 200 characters of a value, and compares every possible pair only while there are 60,000 or fewer of them. Past that it indexes the second list by the three-letter runs inside its words, spends the rare runs first, and scores only the rows that share the most of them. That is a shortcut rather than a full sweep, and the results line says which of the two you got.
Other categories
Games & Puzzles
Quick, colourful games and puzzles. No sign-up, no ads mid-game.
294 toolsImage Tools
Resize, convert, compress, crop, watermark and edit photos.
29 toolsVideo Tools
Trim, crop, compress and convert video in your browser.
11 toolsDeveloper Tools
Encoders, formatters, hashes, generators and validators.
70 toolsText & Writing
Count, clean, compare, convert and transform text.
59 toolsCalculators
Units, money, dates, health and everyday maths.
119 toolsClassroom & Teaching
Group makers, seating charts, rubrics, timers and practice sheets.
23 toolsHome, DIY & Garden
Work out how much flooring, gravel, timber or paint a job takes.
28 toolsSecurity & Privacy
Encrypt, hash, generate passwords and strip metadata.
27 toolsAudio Tools
Trim, join, convert, record and adjust sound files.
33 toolsFiles & Archives
Zip, unzip, split, rename and inspect files.
25 toolsDesign & Generators
Make cards, invoices, QR codes, icons and documents.
57 toolsAI Tools
On-device AI. Downloads once, then runs free forever.
4 toolsDevice Tests
Check your keyboard, microphone, camera and screen are working.
27 tools