Home · Free tools · Bank statement converter
Bank statement converter
Drop a PDF statement and get a table: date, description, amount, balance. It runs in this tab — your statement is not uploaded to us or to anyone else, which is the one thing every other converter on this page's search results asks you to accept.
Open a statement
Drop a PDF here, or click to choose
Nothing is uploaded. The file is read by JavaScript in this tab and never leaves your computer — no server sees it, and closing the tab throws it away.
What it gets right that a plain text dump does not
Copying a statement out of a PDF reader gives you a wall of text. The work is not extracting the characters, it is recovering the table that the characters were printed into. Three things decide whether the result is usable:
- Which numbers are money. A statement is full of numbers that are not amounts: account numbers, sort codes, reference numbers, page numbers. Only numbers that line up into a column on rows that begin with a date are treated as money here.
- Which column is the running balance. This is decided by checking the arithmetic — balance minus previous balance should equal the transaction — not by assuming the rightmost column. When the check passes, the table says so above the results.
- Which way the money went. Many statements print every amount as a positive number and leave the direction to the layout. Because the balance column has been verified, each amount's sign can be recovered from which way the balance moved. Withdrawals come out negative.
Text PDFs and scanned PDFs are different problems
A statement downloaded from online banking is a text PDF: the characters are really in the file, and this page reads them. A statement that was printed, signed and photographed, or that arrived as a scan, is an image PDF — there are no characters in it at all, only a picture of them. Converting one needs OCR, which is a fundamentally different job and is not what this page does. If your file turns out to be a scan, the tool says so rather than returning an empty table.
The quick way to tell before you start: open the PDF and try to select a line of text with your mouse. If the selection highlights individual words, it is a text PDF.
Ambiguous dates, and why nothing here guesses silently
03/04/2026 is 3 April in most of the world and March 4 in the United States, and a
one-month statement can easily contain nothing but ambiguous dates. When at least one date on the
statement has a day above 12, the order is settled and used for the whole file. When none of them
does, this page picks the reading that keeps the statement inside a shorter period — a March
statement read month-first spans six days, read day-first it spans five months — and then
tells you it did that, with a dropdown to override it.
Dates come out as YYYY-MM-DD, which sorts correctly as text and is read the same way by
Excel, Sheets and every database.
Layouts it handles
- Amount plus balance — the usual US and online-banking export, with signs already printed.
- Paid out / paid in — the usual UK and commonwealth layout, with two unsigned money columns. Which side is the debit is worked out from the balance, not assumed.
- One unsigned amount column — signs recovered from the balance, as above.
- Descriptions that wrap onto a second line — joined back onto the transaction above them, without letting a page footer join the last row of a page.
- Multi-page statements — pages come out in order, headers and "page 1 of 2" lines dropped.
Both 1,234.56 and 1.234,56 are read correctly, as are amounts in
parentheses, with a trailing minus, or marked DR and CR.
What it will not do
- No OCR. Scanned statements are out of scope, as above.
- No categorization. You get the transactions as printed. Nothing is tagged "groceries".
- No password-protected PDFs. Open it in a PDF reader, save an unlocked copy, use that.
- Nothing is remembered. Close the tab and there is no copy anywhere — including no copy for us.
And the honest limit on all of it: a statement laid out in a way this page has not seen may come out wrong or come out empty. Check the table against the PDF before you use the numbers. The balance check above the results exists so you can see, at a glance, whether the arithmetic held.
Why "nothing is uploaded" is the whole point on this particular file
A bank statement is the single most sensitive spreadsheet most people own. It carries an account number, a name and address, an employer, a landlord, a pharmacy, a full month of movements. Every other converter you will find for this asks you to upload exactly that file to a server you know nothing about, in exchange for a table you could have had locally.
This page reads the file with JavaScript running in your tab. The PDF parser
(pdf.js) and even the web font are
served from this domain rather than from a CDN, so while you use the tool the network panel shows
requests to tabledi.com and to nothing else — no Google, no analytics vendor, no file
upload. That is a claim you can check in about ten seconds, which is the only kind of privacy claim
worth making.
Questions people ask
Is my bank statement uploaded anywhere?
No. The PDF is read by JavaScript running in this tab. Open your browser's network panel while you use the tool: every request goes to tabledi.com — the page, its scripts, its fonts and one anonymous page-view ping — and not one of them carries a byte of your file. Nothing is sent to a third party at all. Close the tab and nothing remains.
It says my statement is a scan. What now?
Your PDF contains a picture of the statement rather than text, so there are no characters to read. Ask your bank for the CSV or the machine-readable PDF from online banking — most banks offer one and it is the fastest fix. Failing that, the extraction needs OCR, which this page does not do.
Are withdrawals negative in the export?
Yes, when the statement gives us enough to be sure. If amounts are printed with signs we keep them; if they are unsigned we recover the direction from the balance column, but only after verifying that column really is a running balance. When neither is possible the numbers are exported as printed and a note above the table says so.
How many transactions can it handle?
Whatever fits in your browser's memory, which in practice means a year of statements without trouble. The table on screen shows the first 200 rows; the CSV and XLSX downloads contain every row.
Does it work with a password-protected statement?
Not directly. Open it in Preview, Acrobat or your PDF reader of choice, save an unprotected copy, and use that. The tool tells you when a file is encrypted rather than failing quietly.
My bank offers CSV. Should I use this instead?
No — take the CSV. It comes straight from the bank's own records and needs no interpretation at all. This page exists for the case where a PDF is the only thing on offer, which is common for older statements, business accounts and mortgage or loan providers.
Related
Do this on your own machine instead
TableDI is a desktop spreadsheet workspace that runs entirely on your machine. Import the file, fix it, chart it — nothing is uploaded, and there is no account to create.
Free forever, not a trial — no account, no card. macOS and Windows. What the paid tier adds.
Last reviewed 2026-09-01 by the TableDI team. Something wrong on this page? Tell us — it is one inbox, read by the people who build TableDI.