ExcelCleansing

ExcelCleansing

The Professional Data Laundry

100% Private — files never leave your browser

Click to choose or drag your file here

.xlsx · .xls · .xlsm · .csv — processed locally, never uploaded.

No file handy?

Fill Down after unmerge

Propagate the merged value into the freed cells of vertical merges. Useful for pivot-table prep.

Deep Clean

Strip invisible ghost characters so data is formula-ready.

Enter to clean · Esc to clear

What it does, in one click

Four passes run in sequence on every sheet — no toggles to fiddle with, no settings to tune.

01

Unmerge

Every merged range is split back into individual cells without altering your data. The original value stays in its leftmost/topmost cell exactly where it was; the rest stay empty — same as Excel’s native unmerge, but applied across every sheet at once.

02

Compact

Empty rows and columns disappear. Surviving data packs tight to A1 — no random gaps, no surprise blank columns.

03

Repair Headers

Misplaced column headers shift back to the column where their data actually lives, and mostly-empty ghost columns vanish entirely.

04

Strip Ghosts

Invisible characters — non-breaking spaces, zero-width joiners, control codes — are scrubbed so formulas stop failing silently.

Why this exists

Spreadsheets that come out of accounting software, ERP exports, PDF roundtrips, scraped web tables, or just years of copy-paste accumulate invisible mess. Merged headers that hide values. Phantom columns full of styled-but-empty cells. Non-breaking spaces that make VLOOKUP silently miss. Stray footnotes sitting at row 1,440.

Cleaning all of that by hand takes an hour. ExcelCleansing does it in under a second — entirely in your browser. Your file is read, processed, and written without ever touching a server. You can disconnect your network and the tool still works.

Built for the people who actually open these files

Accountants & finance

Closing books, importing trial balances, reconciling exports from QuickBooks, Xero, SAP, Oracle.

Data analysts

Pulling third-party reports into Power BI, Tableau, or Python and getting clean data into the pipeline.

Operations teams

Massaging vendor exports, inventory CSVs, and partner reports before they hit the warehouse.

HR & payroll

Cleaning payroll exports, HRIS reports, and time-tracking dumps before downstream processing.

Sales ops

Sanitising lead lists, CRM exports, and quote sheets before they get loaded back in.

Anyone, really

If you have ever spent more than 10 minutes deleting blank rows or fighting merged headers, this is for you.

Frequently asked questions

Is my data safe? Where does my file go?+
Nowhere. The file is read, processed, and written entirely in your browser using JavaScript. It never reaches a server. You can verify this for yourself by opening your browser DevTools → Network tab and confirming there is zero outbound file traffic when you process a spreadsheet.
What file types are supported?+
.xlsx, .xls, .xlsm, .xlsb, .csv, and .ods on input. The cleaned file is always written as .xlsx for maximum compatibility.
Is there a file size limit?+
No hard limit, but anything above 20 MB will throw a heads-up warning because client-side processing of huge sheets can take several seconds. Most real-world spreadsheets process in well under a second.
Will my formulas, dates, and number formats survive?+
Yes. Formulas (.f), number formats (.z), date types, and cell-level styles (.s) are preserved through the round-trip. Charts, conditional formatting, and pivot tables may simplify on output — this tool is built for tabular data, not designed reports.
Does it work offline?+
Yes — once the page has loaded, you can disconnect your network. All processing happens locally.
What does "Deep Clean" actually remove?+
Non-breaking spaces (U+00A0) become regular spaces. Zero-width characters (U+200B, U+200C, U+200D, U+FEFF) are removed. ASCII control characters (0x00–0x1F) are stripped except for line breaks (\n and \r). Leading/trailing whitespace is trimmed. The pass is idempotent — running it twice produces the same output.
Why did some columns get removed?+
Any column where >90% of cells are empty is treated as a "ghost column" — typically a leftover from PDF exports or copy-paste. If the column had a stray label, it gets shifted into the real data column to its left or right before the column is dropped.

You might also need…

Other tools in the ExcelCleansing suite that pair well with this one.