How to clean a Xero export and check an upload in Google Sheets™
A step-by-step run through the add-on, from install to a fixed sheet. Scanning, every explanation, the ambiguity report, the space fix and Undo are free and unlimited. The other fixes, saved settings and the exportable report are paid, and each is marked Pro where it appears.
What the problem is
A Xero export arrives as text: dates Sheets cannot sort, amounts that refuse to sum, contact names with stray spaces, credit notes in brackets. And a sheet built for upload fails in Xero's import wizard — or worse, imports wrong without failing, creating duplicate contacts in a live ledger.
This add-on knows the file is a Xero file. It checks the sheet against Xero's own conventions and explains every finding in plain English — what is wrong, and why it matters in Xero's terms.
Before you start
- Google Sheets™ in a desktop browser. The add-on does not run in the Google Sheets™ mobile apps.
- The add-on installed — see Step 1.
- A spreadsheet with at least one sheet of Xero data on it. Import tip: bring a
Xero CSV in with File › Import › Upload and untick
“Convert text to numbers, dates and formulas”. Left ticked, Sheets parses
dates using the spreadsheet's locale — a US-locale sheet silently turns a UK
06/03/2026into 3 June — and the ambiguity the scan would have shown you is already lost. - Nothing leaves Google. The rules run in the sidebar, in your browser, against the Sheets API. The add-on's only network traffic is to the licence server, and only ever a licence key, an anonymous install id and which host this is. The privacy notice says so in full.
Step 1 — Install
Install from Google Workspace Marketplace, or Extensions › Add-ons › Get add-ons, then search for “Import Cleaner for Xero”.
Step 2 — Open the sidebar
In the spreadsheet, open Extensions › Import Cleaner for Xero › Open. A sidebar opens on the right.
Step 3 — Pick a direction and scan
Press Clean a Xero export or Check before uploading. The same columns travel both ways, so the direction is asked rather than guessed. The sidebar also says which Xero file it thinks this is — change it there if it guessed wrong — and, when a date finding is in play, asks how the organisation writes dates.
A sheet with nothing wrong says so, rather than showing an empty list.
Step 4 — Read a finding
Every finding names its rule code, what it found, and why it matters in Xero's terms.
- Blocker — the data is wrong, or the import will fail.
- Degrader — works now, will bite later. A blank TaxType, a name that will not match.
- Advisory — worth knowing.
XE-01 | Dates stored as text. Sheets will not sort, filter or subtract them. Every value that reads two ways is listed before anything is written. |
XE-02 | Numbers stored as text. Currency symbols, thousands commas and trailing spaces included. |
XE-03 | Parenthesised negatives. (45.00) is a negative; stripping the brackets by hand turns a credit into a debit. |
XE-04 | Stray spaces, including the non-breaking kind a plain TRIM misses. Free to fix. |
XE-05 | Names to split or join. Handles Ltd, plc and titles rather than splitting blindly on spaces, and writes into new columns. |
XE-06 | Comma decimal separators. Guided, because only the file's origin says whether 1,234 is thousands or a decimal. |
XE-07 | Trailing blank rows or a total row below the data. |
XE-08 | Not a Sheets Table. Made with Format › Convert to table, by hand — the add-in leaves that step to you. |
XI-01 | Required columns missing for the chosen import type. |
XI-02 | Header spelling or casing wrong. Xero matches headers exactly, including spaces. |
XI-03 | Date not in the organisation's regional format. Unreadable dates are explained, never rewritten. |
XI-04 | Bank statement sign convention. Money out must be negative; separate Debit/Credit columns combine into one signed column, written new. |
XI-05 | Decimal separator not a period. Regardless of locale. |
XI-06 | Currency symbols or thousands separators inside amount cells. |
XI-07 | Blank cells that import as zero. An empty Quantity or TaxType does not error — it imports silently. |
XI-08 | Contact names that will not match. Near-duplicates differing by punctuation, case or a trailing space create duplicate contacts in a live ledger instead of failing. |
XI-09 | Line breaks inside cells, which split the row on export to CSV, and mojibake from a misread encoding. |
XI-10 | Field length overruns against Xero's per-field limits. |
Step 5 — Fix it Pro
Each fix shows a preview of the exact cell changes before anything is applied. The preview is built from the same plan the button executes, never from a second description of it.
- One-click fixes (XE-02, XE-03, XE-04, XE-06, XI-02, XI-05, XI-06, XI-09): safe unattended. XE-04 is free.
- Guided fixes (XE-01, XE-05, XE-07, XI-03, XI-04, XI-08): confirm before the write, with the ambiguity report open above the button for dates.
The remaining findings are explained but not applied: a value the parser cannot read is never rewritten, and a guess never overwrites its source — split names and combined Debit/Credit columns are written into new columns, leaving the originals alone.
Step 6 — Undo, or keep the changes
Every fix first saves a hidden copy of the sheet before it changes anything. Undo in the sidebar restores that copy — free in every tier, always. Keep changes deletes the hidden copies once you are happy with the result.
Step 7 — The exported report Pro
Export report writes the full finding list to its own tab in the spreadsheet, so it travels with the file and stays readable without the add-on open.
Step 8 — Entering a licence key
Expand Enter a licence key at the bottom of the sidebar, paste the key from the end of checkout, and press Activate. One key works in Excel and Google Sheets™, with 3 activations shared between them, and takes effect immediately.
Limits
- Desktop browser only. The add-on does not run in the Google Sheets™ mobile apps.
- Sheet size. Sheets up to 2,000,000 cells are supported. Larger sheets are declined with a message naming the size.
- Undo after a shape-changing fix restores row heights and hidden rows for the first 5,000 rows.
- Field limits are as at the build date; Xero changes them, and the add-on says so on this page rather than reporting a stale limit confidently.
FAQ
Does my data leave Google? No. The rules run in the sidebar, in your browser, against the Sheets API. The only network call this add-on makes is to the licence server, for a licence key, an anonymous install id and which host this is.
How should I import a Xero CSV? File › Import › Upload, with “Convert text to numbers, dates and formulas” unticked. See “Before you start” above for why.
Does it work on a .xlsx file opened in Office editing mode? No — convert the file to a Google Sheet™ first (File › Save as Google Sheets™). The add-on reads the Sheets API, which an Excel file kept in Office mode does not expose.
Is there a version for Excel? Yes — the Excel add-in runs the same checks, and the same key works in both.
Is this affiliated with Xero? No. It is an independent add-on by AppGarden, not affiliated with, endorsed by or sponsored by Xero Limited.
Support
Email support@appgarden.co.uk, and say which host (Excel or Google Sheets™) and which finding looked wrong. A spreadsheet that produced a wrong finding — or missed a real one — is the most useful thing you can send. Only send one you are content to share, and read the privacy notice first.