Free · No sign-up · Nothing uploaded

Convert a bank statement PDF to Excel

Drop in a statement from your online banking and get a clean spreadsheet back — with every row checked against the statement's own running balance, so you can see whether the output can be trusted before you use it.

Drop your bank statement here

PDF from online banking, or an OFX / QFX export. Click to choose, or paste with Ctrl/⌘+V.

Text-based PDF up to 60 MB / 200 pages, or .ofx / .qfx

Scanned or photographed statement?
Never uploaded — conversion happens in your browser No sign-up, no email Rows checked against the statement's running balance
  • 0 bytes
    uploaded — conversion is local
  • .xlsx / .csv
    plus QuickBooks and Xero presets
  • Balance-checked
    rows verified against the running total

How it works

  1. Drop in the PDF

    Use the statement your bank gives you — the PDF you download from online banking. It is read in this browser tab, so there is nothing to wait for in a queue.

  2. Rows are extracted and checked

    The converter rebuilds the table from the PDF's text positions, then verifies every row against the running balance the statement prints. Anything that does not add up gets flagged.

  3. Download and use it

    Take an Excel workbook, a plain CSV, or a file already shaped for QuickBooks Online or Xero. The workbook includes a Summary sheet recording exactly what was verified.

What the output looks like

One row per transaction, with the columns a bookkeeper expects. Debits and credits are kept as separate positive columns and as a single signed amount, so the file works whether your next step wants "paid out / paid in" or a signed total.

  • Date — printed in the format you choose, so importers accept it.
  • Description — multi-line merchant details are joined into one cell.
  • Debit / Credit / Amount / Balance — as separate numeric columns Excel can sum and pivot.
  • Notes — flags any row that failed its balance check.

Example output — Transactions sheet

DateDescriptionDebitCreditAmountBalance
01/04/2025ACME PAYROLL DEPOSIT317.92317.925,138.47
01/06/2025INSURANCE PREMIUM AUTO806.84-806.844,331.63
01/09/2025CHECK #104288.50-88.504,243.13
01/11/2025NORTHWIND TRADING CO REF 882133643.32-643.323,599.81

The workbook also carries a Summary sheet (what was verified) and a Raw sheet (the source line behind every row).

Who this is for

Bookkeepers

Turn a client's statement PDF into something you can reconcile, without retyping 200 lines or buying a monthly subscription for one file a month.

Freelancers and sole traders

Get a year of transactions into a spreadsheet for your accountant or your tax return, sorted and typed as real dates and numbers.

Small businesses

Feed an account into QuickBooks or Xero when the bank's own feed is not available, and keep the balance check to show the import is complete.

Anyone auditing a statement

The Raw sheet keeps the original text line for every row, so a figure can always be traced back to the document it came from.

What it cannot do

Being clear about the limits is more useful than claiming to handle everything. This tool reads the text layer inside a PDF. That covers the statements banks actually produce in online banking. It does not cover:

  • Scanned or photographed statements. These are images. Reading them needs OCR, which cannot run well in a browser tab — what to use instead.
  • PDFs whose text layer is broken. Some banks print with custom fonts that decode to nonsense. The converter detects this and says so rather than inventing rows.
  • Categorising your spending. It converts what the statement says. It does not guess categories or merchants.
  • Combining many statements at once. One file at a time in the browser; a batch route is on the roadmap.

Always spot-check the converted rows against your original statement before filing, reconciling or lending against them. This is a conversion tool, not an audit.

Questions people actually ask

Is my bank statement uploaded to a server?

No. The PDF is opened and parsed by JavaScript running in your browser tab. There is no upload endpoint, no storage bucket and no queue — you can watch the network tab stay empty while it converts. That is also why the tool keeps working when you are offline after the page has loaded.

Does it work on scanned or photographed statements?

No, and it will tell you so rather than guess. Statements downloaded from online banking are almost always text-based PDFs, which this tool reads exactly. A scan or a phone photo is an image, and reading it needs OCR — see the scanned statements page for what to use instead.

How do I know the numbers are right?

The converter checks its own work. Bank statements print a running balance on every row, so the tool verifies that each previous balance plus the row amount equals the next balance. If rows do not reconcile, they are flagged in the preview and in the Notes column instead of being silently included.

Why are some rows marked "check"?

A flagged row is one the parser could not fully verify: an amount that did not fit the running balance, a missing amount, or two amounts on one line. Flags usually mean an unusual statement layout, not that the whole file is wrong — compare the flagged rows against your original PDF before using them.

Can I import the result into QuickBooks or Xero?

Yes. There are presets for QuickBooks Online (Date, Description, Amount with outflows negative) and for Xero statement import (*Date, *Amount, Payee, Description, Reference). Date order is a choice, because QuickBooks and Xero expect different formats depending on your locale.

Is it free?

Yes. There is no sign-up, no row limit and no watermark. The site is funded by advertising and by referrals to OCR services for the scanned statements this tool cannot read.

What if my statement is password protected?

Most banks send encrypted PDFs. The tool detects the encryption and asks for the password, which is used in your browser only. Typical bank passwords are your date of birth, your account number, or the last four digits of your card.

How many pages can it handle?

Up to 200 pages and 60 MB per file. The cap exists because everything runs on your device — a longer statement would make the browser tab unresponsive with no server to fall back on.