Convert a bank statement PDF to Excel — with every balance checked
Transactions read from the statement on your device, then reconciled against its running balance, so a misread row shows up.
Free: 3 jobs per UTC day, 25 MB per file. PDF exports include a visible Made with Bindery watermark. Pro exports clean PDFs.
Prefer the full studio? Open Bank statement to Excel in the app →
A bank statement is one of the most private files you own, and most converters want it uploaded. Bindery reads it in your browser tab instead. Each line that starts with a date and ends with amounts becomes a transaction: the date in a standard form, the description (continued over the lines below it), the money in or out and the balance. The columns are found from the statement’s own headings — Paid out and Paid in, Debit and Credit, Withdrawals and Deposits, Soll and Haben, Débit and Crédit — and from where the amounts line up.
Then comes the part converters skip: the running balance. Every printed balance must equal the one before it plus the money in that row, so a row read wrongly, or missing at a page break, is named with the balance expected and the balance printed. Statements listed newest first are recognised, and balances carried between pages are checked too. You download an Excel workbook with a Checks sheet, a CSV, or a QIF file for Quicken and GnuCash. Nothing is uploaded.
How it works
- Drop the statement PDF and open Bank statement → Excel
- Read the check: how many printed balances follow from the one before, and any row that doesn’t
- Download the Excel workbook, CSV or QIF
How transactions are found
Bindery reads the statement’s text layer and groups it into lines. A transaction is a line that starts with a date and has at least one amount after it, with two decimals so reference numbers are not taken for money. Dates are read in the common forms — 31/03/2025, 03/31/2025, 31.03.2025, 2025-03-31, 31 Mar 2025, Mar 31, 2025 — and when a statement prints day and month without a year, the year comes from the statement period. Whether 03/04 is 3 April or 4 March is worked out from the dates that can only be one way, and you can set it yourself. Amounts can be written 1,234.56, 1.234,56, 1 234,56, (45.20), 45.20- or with CR and DR.
The money columns are found where the amounts line up, and named from the headings above the first transaction: Paid out / Paid in / Balance, Debit / Credit, Withdrawals / Deposits, Amount, and their Spanish, French, German, Italian, Portuguese and Dutch equivalents. A description that runs onto the next line is joined to its row, and a second date at the start (a value date) is kept out of it.
The balance check
Most statements print a running balance. Bindery checks each one: the previous balance plus this row’s money must equal what the statement prints. Rows without a printed balance are carried along to the next one that has it. Balances brought forward and carried forward between pages are checked the same way, so a row lost at a page break shows up where the pages meet. The opening balance starts the chain, and a closing balance is checked at the end.
Both sign conventions and both orders are tried — some statements list the newest transaction first — and the one that adds up is used. The result says how many printed balances agree, and names every one that does not, with the balance expected, the balance printed and the page. Nothing is silently corrected: a mismatch means look at that line.
A year of statements at once
Drop several statements together — a year of monthly PDFs, say — and they become one spreadsheet, in date order whatever order you dropped them in, with a Statement column saying which file each row came from. Each statement’s balances are checked on their own, and then the statements are checked against each other: each one must start at the balance the one before it ended on. A statement missing from the run shows up there, between the two months it should sit between. A file that cannot be read, or has no transactions, is listed and left out rather than stopping the rest.
What you download
| File | What is in it |
|---|---|
| Excel (.xlsx) | A Transactions sheet — Date, Description, Amount (money in positive, money out negative), Debit, Credit, Balance, Page — and a Checks sheet with the counts, the opening and closing balance and every mismatch |
| CSV | The same columns, UTF-8 with a byte-order mark so Excel opens accents correctly; cells that start with = + - or @ get an apostrophe in front so they cannot run as formulas |
| QIF | Bank-account transactions for Quicken, GnuCash and most accounting imports, with dates as MM/DD/YYYY |
Honest limits
- It needs text. Run OCR on a scanned statement first; the balance check then catches digits OCR misread.
- A line must start with its date. Layouts that put the date elsewhere, or several transactions on one line, are not read as transactions — PDF → Excel keeps every table as it is instead.
- One currency at a time. Amounts are read as numbers; a statement with several currencies needs checking by hand.
- Without a running balance there is nothing to check against. Some credit card statements print none; the result says so.
Converting in the browser versus uploading
| Bank statement → Excel | Bindery | Upload-based tools |
|---|---|---|
| Where the file is processed | In your browser tab, on your device | Uploaded to the service’s servers |
| Your statement | Stays on your device | Uploaded to the service’s servers |
| Checking the result | Every printed balance reconciled, mismatches named | Usually none — you find errors later |
| What exists afterwards | The original and the new file, both on your device | A server copy until the retention window ends |
| Works offline | Yes, once the app has loaded | No |
Questions people ask
Is my bank statement uploaded?
No. The statement is read, converted and checked in your browser tab, and it never leaves your device. That matters for a file with your account number, balance and every payment you made.
How do I know the conversion is right?
By the balance check. Each printed balance should be the previous one plus the row’s money in or out. Bindery checks every one and says how many agree; any row that does not is listed with the expected and printed balance and its page, so you can look at that line on the statement. A closing balance is checked against the transactions too.
Does it work on scanned statements?
Once they have text. A scanned or photographed statement is a picture, so run OCR on it first — on your device, free for 5 pages a day — then open the searchable copy. OCR can misread digits; the balance check is what catches that.
Which banks does it work with?
It does not use a list of banks. It reads any statement whose transactions are lines that start with a date and end with amounts, which covers most current-account and many credit-card statements, and it tells you when a statement did not reconcile rather than guessing.
Can I import the result into Xero, QuickBooks or my spreadsheet?
The CSV has one row per transaction with the date as YYYY-MM-DD and a signed amount, which bank-import screens in accounting software accept after you match the columns; the QIF file imports into Quicken and GnuCash. The Excel workbook is for reading and checking.
What does the free plan include?
Reading the statement and the balance check use none of your jobs; downloading the file is one of your 3 free jobs a day, and files can be up to 25 MB. Spreadsheets and QIF files are never watermarked.