CSV tools for bookkeepers: from bank export to accounting import
A bank or card export is rarely ready for Xero, QuickBooks or Sage. The dates follow the bank’s locale, the amounts may use a decimal comma, a second download repeats last week’s transactions, and payee names arrive with broken accents. Every one of those problems is small, and every one of them can stop an import or post a transaction twice.
The pages below cover that path from download to import. Whichever one you start from, the totals check adds up each amount column before and after cleaning, so you can show a client or a reviewer that no figure moved while the file was being tidied.
The order that works
- 1
If the period spans several downloads, stack them into one file first, so overlapping days show up as repeated rows.
- 2
Repair the text and the layout: broken characters in payee names, padded descriptions and the blank spacer rows some banks insert.
- 3
Rewrite every date in one unambiguous format (YYYY-MM-DD by default, or DD/MM/YYYY or MM/DD/YYYY from the date rule’s settings), and turn decimal-comma amounts into plain numbers.
- 4
Read the removed rows in the preview before you export: two identical card payments on the same day can both be real.
Statements and imports
Start here when the file is a statement you downloaded, or a sheet you are about to load into accounting software.
Clean Bank Statement CSV
One pass for a downloaded statement: encoding, spacing, blank rows and dates in YYYY-MM-DD, then the totals check.
Prepare CSV for Accounting Import
Writes dates as DD/MM/YYYY and leaves the template’s starred headers exactly as the importer expects them.
Merge CSV Files
Combine monthly or per-account downloads into one file, matching columns by header name.
Dates, amounts and repeated transactions
The three problems that most often change what the ledger shows, rather than just how the file looks.
Normalize Dates
Works out per column whether the bank wrote day-first or month-first dates before converting them.
Convert Comma DecimalsPro
For German, French or Spanish exports where 1.234,50 has to become 1234.50 before it can be summed.
Remove Duplicates
Finds rows repeated by overlapping downloads; every removal is listed in the preview so legitimate repeats can be kept.
Guides for bookkeeping files
Why these problems happen, how to fix them by hand in Excel or Google Sheets, and where a tool helps.
Remove duplicate transactions from a bank CSV
Telling a transaction that was downloaded twice apart from two real purchases of the same amount.
How to stop Excel changing dates in a CSV, and fix swapped days and months
Why Excel swaps the day and month when it opens a statement, and how to open it without that happening.
Fix European number formats (1.234,56) in Excel and CSV importsPro
Getting SUM to work on amounts written as 1.234,56, in Excel and in accounting imports.
Import guides, bank by bank
One bank’s export into one accounting product: the columns each side uses, every mismatch between them, and the help pages and parsers behind each claim.
How to import a Revolut statement into Xero
Revolut’s date-and-time stamps rewritten for Xero, and the Fee column and unfinished rows that still need a hand edit.
How to upload a Revolut statement to QuickBooks OnlinePro
Cutting Revolut’s ten columns down to the three QuickBooks Online uploads, and what to do with 0.00 card holds.
How to import a Wise statement into Xero
One Xero bank account per Wise currency, the running balance taken out, and each fee counted once.
How to upload a Wise statement to QuickBooks OnlinePro
Wise’s Date, Description and Amount moved to the front, one currency per file, inside the QuickBooks upload limits.
How to upload Monzo transactions to QuickBooks OnlinePro
Monzo’s Name column as the QuickBooks description, and a decision about transfers to and from Pots.