Free tool · Bank statement PDF → Excel · Client-side · No sign-up

Bank Statement to Excel Converter

Drop a bank statement PDF and get back a spreadsheet: each transaction as a row with date, description, debit, credit, signed amount and running balance, exported as a real .xlsx workbook or a CSV. Your statement is read inside your own browser and is never uploaded. Text-based statement PDFs only — scans are not supported.

Your statement is read by your own browser. Nothing is uploaded, nothing is stored, and no OCR service sees it.

Why this one does not upload your statement

A bank statement is the most sensitive file most people will ever put into a web form: account number, balance, salary, rent, every place you shop. Most online converters solve the problem by sending it to a server that runs OCR on it, which means your statement sits, at least briefly, on a machine you do not control and under a privacy policy you have not read.

This tool takes the other route. The PDF is opened by your own browser using Mozilla's pdf.js, the text is read locally, the spreadsheet is built locally, and the download comes out of your own tab. There is no upload step, no account, and no server that could keep a copy — you can confirm it by opening your browser's network panel and watching nothing leave.

The trade-off is honest and worth stating: because there is no OCR service behind it, a statement that is a scan or a photo cannot be read. See the next section.

Text PDFs work, scans do not

A PDF downloaded from your online banking almost always contains a real text layer — the characters are stored as text, which is why you can select them with your mouse in a PDF reader. That is what this tool reads.

A PDF produced by scanning or photographing a paper statement contains an image of the text instead. Extracting that would require optical character recognition, which is exactly the thing that forces a server upload. Rather than pretend otherwise, the tool detects the missing text layer and tells you so, with the practical fix: download the original PDF from your bank instead of scanning the printed copy.

A quick test before you start: open the PDF and try to select a transaction line with your cursor. If the text highlights, this tool can read it.

The balance check is the part that matters

Any converter can produce rows. The real question is whether it produced all of them — a silently dropped line is worse than no conversion at all, because you will not notice it.

When your statement has a running balance column, the tool verifies, row by row, that each balance equals the previous balance plus that row's amount, to the cent. If every row follows on, you get a passed balance check and can trust the extraction. If any row breaks the chain, you are told how many and where, and the Check sheet in the workbook lists them so you can look at the original.

When a statement has no balance column, the extraction cannot check itself, and the tool says that plainly rather than implying a confidence it does not have.

What comes out

The .xlsx has two sheets. Transactions holds one row per transaction: date as a real Excel date, description, debit, credit, a signed amount, the running balance, and the page it came from. Debit and credit are written as positive figures, the way they appear on a paper statement; the Amount column is the signed one — negative for money out, positive for money in — whatever layout the original used. The total row uses real SUM formulas, so the file keeps working when you edit or filter it.

The Check sheet holds the reconciliation result, the totals, and every line the parser did not read as a transaction — headers, footers, page numbers, balance-forward lines. Those are listed rather than discarded so you can confirm nothing real was left out.

A plain CSV export is also available if you are feeding the data into accounting software rather than working in Excel.

Statements with two amount columns, and statements with one

Banks disagree about how to lay out a statement. Some print separate debit and credit columns; others print a single amount column where money out carries a minus sign, or brackets, or a trailing dash. Some put the balance on the right, some do not print one at all.

The tool detects which of these it is looking at and normalises the result, so the Amount column in your spreadsheet means the same thing regardless of which bank produced the PDF. It also handles the two decimal conventions — 1,234.56 and 1.234,56 — by looking at where the last separator falls rather than assuming a country. The detection leans on the column headings printed on the statement, so English-language headings are read most reliably; where no heading is found, the tool falls back to reading amounts left to right and lowers the confidence it reports.

Dates are the one case where a file can be genuinely ambiguous: 03/04/2026 is 3 April in most of the world and 4 March in the United States. The tool assumes month-first by default and gives you a checkbox to switch, which re-reads the file immediately.

Beyond one-off conversions

Need a spreadsheet built to run your business, not just hold data?

These converters get your data into a spreadsheet. Our templates go further — dashboards, automations, and data validation built in, tested to the cent, in matching Excel and Google Sheets versions.

Browse premium templatesSee free templates

Frequently asked questions

Is my bank statement uploaded anywhere?

No. The PDF is opened and read by your own browser, and the spreadsheet is built there too. There is no upload, no account, and no server copy. You can verify it by opening your browser's network tab while you use the tool.

Does it work on a scanned statement?

No. Scans and photos contain an image of the text rather than text, and reading them would require OCR, which would mean sending your statement to a server. The tool detects this case and tells you instead of failing silently. Download the original PDF from your bank rather than scanning a printed copy.

How do I know it did not miss a transaction?

If your statement has a running balance column, the tool checks every row against the previous balance to the cent and tells you whether the chain holds. It also lists every line it did not read as a transaction, so you can confirm those are only headers and totals.

Which banks does it support?

It is not built per bank. It reads the layout of the page — where the dates, amounts and balance sit — so it works across statements that follow the usual date, description, amount pattern, whether they use separate debit and credit columns or a single signed amount column. Unusual layouts may not be recognised, and the tool says so rather than inventing rows.

Why are my dates wrong by a few days?

Your statement is probably day-first (15/01/2026) while the tool defaulted to month-first. Tick the day-first checkbox and the file is re-read immediately with the correct interpretation.

Can I use the output for bookkeeping?

You can, but check it first: this is an extraction tool, not an accounting system. It reads what is printed on the statement. If you want a spreadsheet that actually does the bookkeeping, the paid Bookkeeping for Small Business template is built for that.

It says no transactions were found, but I can see them in the PDF.

Two layouts are known to defeat it. Some statements print the year only once at the top of the page and show each transaction as 05/01 with no year — the tool refuses to guess a year rather than write a wrong date, so it finds nothing. Others use column headings in a language other than English, which is how the tool works out which column is the debit and which is the credit. In both cases it stops and tells you instead of producing rows that look right and are not.

Is there a file size limit?

25 MB, which is far beyond a normal statement. Larger files are usually scans, which are not supported anyway.

More free tools & templates