convert CSV to Excel (.xlsx) without Excel destroying your data
Open a CSV in Excel and it guesses at every cell. 0001234 becomes 1234. A ZIP code of 07030 becomes 7030. 1/2/2024 becomes whichever date your locale prefers. A 16-digit account number is rounded. A cell beginning with = is run as a formula. None of that is a bug in your data - it is what happens when a file format has no way to say what a value IS.
A real workbook does. Every cell here carries its own type, so nothing has to be guessed at.
how to use it
- Drop a .csv - or a TSV, a semicolon or pipe delimited file, a pasted range from Excel or Google Sheets. The delimiter detects itself.
- Check the column types in the schema panel. They are read from your actual data, and they decide what each cell becomes in the workbook.
- Clean it if you like: drop columns, rename, filter, dedupe, scrub PII. Every change is a visible step.
- Pick xlsx beside the export button and choose export clean file. The whole file streams through your steps into a real workbook.
what stays intact
- Leading zeros: 0001234 and 07030 are written as text, so they arrive as themselves. The rule is that a column's type only PROPOSES what a cell becomes - the literal text gets a veto, and any value that would not survive the round trip through a number is written as text instead.
- Long identifiers: Excel keeps 15 significant digits and quietly rounds the rest, which is a lower ceiling than most tools check for. Anything past it is written as text, so a 16-digit NPI or account number arrives whole rather than ending in a zero it never had.
- Real dates: unambiguous ISO dates become genuine date cells that Excel can sort and filter, not text that merely looks like a date.
- Ambiguous dates are left alone: 1/2/2024 means two different days on two different continents, so it is written exactly as your source wrote it rather than silently picking a side.
- No formula injection: a value starting with =, +, - or @ is text, not a formula - and not because it was sanitized or prefixed with a quote. Text lives in one part of the format and formulas in another, so the file simply contains no formulas.
- No encoding question at all: accented characters and CJK just work. There is no BOM to remember and no delimiter to pick, which is the entire reason the "excel-safe" CSV workaround exists in the first place.
honest about the edges
- A trailing zero on a decimal is display rather than value, so 1.50 is written as the number 1.5. If you need the string, keep the column as text.
- The .xlsx format stops at 1,048,576 rows. Past that, export CSV instead - that path has no limit and streams at any size.
- One sheet per export, named after your dataset.
Coming the other way? Excel to CSV reads workbooks with the same care - every sheet, leading zeros intact, dates readable.
every tool in the box
- data workbench - profile, clean, transform, and export CSV, JSON, and SQLite - the full suite
- JSON flattener - nested JSON or NDJSON to flat columns, arrays and objects unrolled
- CSV PII scrubber - find emails, phones, SSNs, and card numbers - mask, hash, or drop them
- JSON to CSV - convert JSON or NDJSON to CSV with full column control
- CSV to JSON - convert CSV to JSON or NDJSON, streamed at any size
- Excel to CSV - read .xlsx workbooks and export CSV, sheets and all
- CSV to Excel - write a real .xlsx where leading zeros and dates survive (this page)
- SQL on CSV - real SQL over your files: joins, GROUP BY, a read-only console
- CSV to SQLite - drop several files, get one .sqlite database with discovered foreign keys
- CSV to SQL - CREATE TABLE and INSERT statements for Postgres, MySQL, SQL Server, SQLite
- JSON to TypeScript - TypeScript interfaces and JSON Schema derived from your real data
- large CSV viewer - open files past Excel's 1,048,576-row limit without loading them into RAM
- regex painter - highlight example matches, get a verified regular expression back
- encoding fixer - detect windows-1252/UTF-16 and repair garbled text (José → José)
- log parser - read log files as events: layouts detected, stack traces kept whole, timestamps normalized, and a volume-over-time strip drawn in SQL across every row
- visualize - chart any table you have open - bar, line, area or point - drag across it to filter, and export svg, png, or the vega-lite spec that drew it
- theme builder - design, test, and export custom color themes with live previews, palette derivation, and contrast diagnostics
Like every unfckr tool, this runs 100% in your browser: no upload, no servers, no signup, no analytics. A Content-Security-Policy header blocks every programmatic network channel, so not even malicious code could phone home - and you can watch it happen: the privacy page runs six live escape attempts and shows the browser refusing each one.
↑ back to the tool