Bank Statement Converter: PDF to Excel and CSV

Turn a PDF bank statement into a clean Excel or CSV table with date, description, debit, credit and balance, in your browser.

๐Ÿฆ
Drop a PDF bank statement here or click to choose a file. It is read in your browser and never uploaded.

Runs in your browser. Your statement and its password are never uploaded.

In short

Drop your PDF bank statement on the converter. It reads the text in the PDF, rebuilds each transaction row with date, description, debit, credit and balance, and checks every row against the printed running balance. Fix any column in the preview, then download Excel (.xlsx) or CSV. The file never leaves your browser.

On this page
  1. How to convert a bank statement PDF to Excel or CSV
  2. How the converter reads your statement
  3. Check the result before you download
  4. A worked example
  5. Using the file in Excel, Google Sheets and accounting software
  6. Password-protected and scanned statements
  7. Troubleshooting
  8. Limitations
  9. Your statement stays on your device

Most banks will give you a PDF statement for any month, but only a short CSV history, and sometimes no CSV at all. When you need the transactions in a spreadsheet for bookkeeping, a tax return, a loan application or matching store payouts, retyping them is slow and easy to get wrong. This converter reads the PDF your bank produced, rebuilds the transaction table and hands you a spreadsheet you can sort, filter and import.

Everything runs in your browser with the same PDF engine Firefox uses. Your statement, its password and the rows it contains are never uploaded to our server, which matters for a document that carries your account number and a month of your spending.

How to convert a bank statement PDF to Excel or CSV

  1. Download the statement from your online banking as a PDF. Use the original file, not a scan or a photo of a printout.
  2. Drop the PDF on the converter above, or click the box and choose it. Files up to 60 MB work; a normal statement is well under 5 MB.
  3. If the PDF is locked, type its password and click Open. Banks often use your date of birth, customer number or part of your account number.
  4. Look at Number columns found. Each card shows the column heading from your statement, a few sample values and a dropdown: Debit (out), Credit (in), Amount (+ in, - out), Balance or Ignore. Change a dropdown if a column was read wrong.
  5. Check the Balance check figure. It tells you how many rows add up to the balance your bank printed. Rows that do not are shaded red in the preview.
  6. Pick how dates should look in your file: 2026-01-31, 31/01/2026 or 01/31/2026. Tick Add a signed Amount column if your software wants one column with minus signs for money out.
  7. Remove any row you do not want with the x at the end of it. Put removed rows back undoes this.
  8. Click Download Excel (.xlsx), Download CSV or Copy for Google Sheets, then paste into cell A1 of a blank sheet.

How the converter reads your statement

A PDF does not store a table. It stores pieces of text and where each one sits on the page. The converter collects every piece with its position, groups pieces that share a baseline into lines, and then works out which lines are transactions. A line becomes a new transaction when it starts with a date in the date column. Amounts are grouped into columns by where their right edge falls, because banks right-align money. If the statement has a heading row such as Date, Details, Paid out, Paid in, Balance, those headings name the columns; if it has none, the rightmost number column is taken as the balance and the two before it as debit and credit.

Statements are not tidy, so the converter also handles the common quirks:

  • Wrapped descriptions. A description that runs onto a second or third line is joined back into one cell, whether the amounts sit on the first line or the last.
  • One date per day. Many UK and European banks print the date only on the first transaction of each day. Later lines with amounts get the same date.
  • Value dates. When a statement shows a booking date and a value date side by side, the first is kept and the second is dropped.
  • Balance lines. Balance brought forward, opening, beginning, carried forward and closing balance lines are left out of the table, and the opening balance is used for the balance check.
  • Reference columns. When the heading row has a Ref, Reference or Chq column, those values go into their own Reference column instead of the description.
  • Page furniture. Repeated headings, page numbers, footers and rotated watermark text are ignored. Lines starting with Total or Summary are skipped.

Date formats it recognizes

Printed on the statementRead asNotes
31/01/2026, 31-01-2026, 31.01.2026January 31, 2026Two-digit years like 31/01/26 work too
01/31/2026January 31, 2026US month-first order
2026-01-31January 31, 2026Year first
31 Jan 2026, 31-Jan-26, 31 January 2026January 31, 2026Short or full month names
Jan 31, 2026 or January 31January 31, 2026Common on US card and bank statements
31 Jan or 31/01 (no year)January 31 of the statement yearThe year comes from the statement period text and moves forward when December rolls into January

A date like 03/04/2026 could be March 4 or April 3. The converter looks at every date in the file: if any first number is above 12 the file is day first, and if any second number is above 12 it is month first. When every date is ambiguous it assumes month first for statements that show dollar signs and day first otherwise, and it tells you so above the table. Change Dates in the PDF are if the guess is wrong, and every row updates at once.

Amounts and signs

Printed amountRead as
1,234.56 or $1,234.561234.56
1.234,56 or 1 234,56 (European style)1234.56
-1,234.56, 1,234.56- or (1,234.56)1234.56 out
1,234.56 DR or 1,234.56 Dr1234.56 out
1,234.56 CR or +1,234.561234.56 in
1,234.56 with Dr or Cr in its own columnOut or in, by that column

Currency symbols and codes such as $, ยฃ, โ‚ฌ, โ‚น, Rs, PKR, USD and GBP are removed. To avoid reading account numbers, check numbers and years as money, a value only counts as an amount when it has two decimals (12.50) or thousands separators (12,000).

Statements with separate debit and credit columns are the easy case. When a statement has one amount column, the sign comes from a minus, brackets, a DR or CR mark, or a Dr/Cr column. If there is no mark at all, the converter compares the balance before and after the row: if the balance went up by that amount it is money in, and if it went down it is money out.

Check the result before you download

The balance check is the fastest way to trust the output. For every row with a printed balance, the converter takes the previous balance, adds the credit, subtracts the debit and compares the result with the balance on the statement, to the cent. A statement read correctly shows something like 46 / 46 rows that add up.

When some rows fail, the cause is usually one of these:

  • Debit and credit are swapped. Every row fails. Swap the two dropdowns. On an automatic mapping the converter already tries the swap and keeps whichever reading adds up better.
  • A column holds something else. Some statements print a running total of fees or an exchange rate in its own column. Set that column to Ignore.
  • A fee sits on its own line without a balance. The next row then fails by the fee amount. Compare the red row with the PDF; the data is usually right and the statement simply skipped a balance.
  • A page starts mid-day. If a statement repeats the previous page's closing balance as the first line of the new page without a label, remove that row.

A worked example

Here is a short part of a typical UK current account statement, with the date printed once per day and one description wrapped onto two lines:

DatePayment type and detailsPaid outPaid inBalance
BALANCE BROUGHT FORWARD2,450.18
03 Jan 26STANDING ORDER RENT FLAT 4 HIGH
STREET MONTHLY
1,150.001,300.18
05 Jan 26SHOPIFY PAYOUT 5521842.372,142.55
CARD PAYMENT TO TESCO STORES36.202,106.35

The converter produces three rows. The rent row gets the full description STANDING ORDER RENT FLAT 4 HIGH STREET MONTHLY with 1150.00 in Debit. The Shopify payout has 842.37 in Credit. The Tesco payment has no printed date, so it takes 2026-01-05 from the row above. The brought forward line is not a transaction, but its 2,450.18 is used for the check: 2,450.18 minus 1,150.00 is 1,300.18, plus 842.37 is 2,142.55, minus 36.20 is 2,106.35. All three rows match, so the check reads 3 / 3.

Using the file in Excel, Google Sheets and accounting software

The Excel file has one sheet called Transactions with a bold header row that stays in view as you scroll, a filter on every column, real date cells (so sorting by date works) and amounts formatted to two decimals. The CSV is UTF-8 with plain numbers such as 1150.00, which every spreadsheet and accounting app reads without guessing at commas. Text that starts with =, +, - or @ is prefixed so a spreadsheet never runs it as a formula.

For QuickBooks Online, Intuit's help pages (checked September 2026) describe two CSV layouts for a bank upload: three columns (Date, Description, Amount, with payments negative) or four columns (Date, Description, Credit, Debit). The file must be 350 KB or less, and Intuit recommends one date format throughout, ideally dd/mm/yyyy. To match:

  1. Set Dates in your file to the format your QuickBooks company uses.
  2. For the three-column layout, tick Add a signed Amount column, open the Excel file and delete the Debit, Credit and Balance columns. For four columns, delete Balance and put Credit before Debit.
  3. Save as CSV and upload it in QuickBooks under Bank transactions with Link account > Upload from file. See Intuit's upload guide for the current steps.

Xero, Wave and most other bookkeeping tools also take a CSV bank statement. Check the column names their import screen asks for and rename the headers to match.

For store owners, a converted statement is the quickest way to line up Shopify, PayPal and Stripe payouts against what the processor says you were paid. Our Shopify fee calculator and PayPal fee calculator show what each payout should have been before fees, so a gap stands out.

Password-protected and scanned statements

Many banks email statements as password-protected PDFs. The converter opens them with the password you type, and the password is used only inside this page. If it is wrong you can try again straight away. You do not need to remove the password first.

A scanned or photographed statement is different. It is a picture of text, with no text layer for the converter to read, and the tool says so as soon as you open it. Two options work:

  • Download the statement again from online banking. Downloaded statements nearly always have real text, even from banks whose paper statements are scanned.
  • If a scan is all you have, turn the pages into images with PDF to JPG and read them with Image to Text. OCR gives you plain text lines, not a table, so you will need to split the columns in a spreadsheet, and you should check every amount, because OCR can misread a 5 as a 6.

Troubleshooting

What you seeLikely causeWhat to do
No transactions were foundA scan, a summary-only page, or dates in an unusual placeTry another setting for Dates in the PDF are, or download the statement again
Dates are a month off or impossibleDay and month order guessed wrongChange Dates in the PDF are to Day first or Month first
Money in shows as money outDebit and credit columns swappedSwap the two dropdowns under Number columns found
A description has text from the next rowUnusually tight line spacingEdit that cell in your spreadsheet after download
An extra row with a big amountA summary or total line without the word TotalRemove it with the x
The balance check fails on every rowA column is mapped to the wrong roleLook at the sample values on each card and fix the dropdowns

Limitations

  • It needs a text PDF. Scans and photos need OCR first, as described above.
  • It reads the statement's layout, so a very unusual design, such as transactions laid out in two side-by-side columns on one page, may need manual cleanup.
  • Amounts need two decimals or thousands separators. Currencies with no decimals, like the yen, only read when the numbers have thousands separators, so 950 on its own is not picked up.
  • The preview shows the first 300 rows; the downloads include every row.
  • It converts one statement at a time. For a year of statements, convert each month and paste the rows into one sheet.
  • It is a reading aid, not an accounting service. Check the balance figure and your bank's own totals before you file anything.

Your statement stays on your device

The converter is a script that runs in your browser tab. The PDF is opened from your disk into the page's memory, the rows are built there, and the Excel or CSV file is created there and saved by your browser. Nothing is sent to our server, not the file, not the password, not the transactions. Close the tab and it is gone. If you want to confirm this, open your browser's developer tools on the Network tab while you convert: you will see no upload.

If you only need part of a long statement, cut the pages you want with Split PDF first; it also runs in your browser.

Frequently asked questions

Is this bank statement converter free?

Yes. There is no sign-up, no page limit and no watermark. The conversion runs in your browser, so we have no processing cost to pass on. Convert as many statements as you like, one at a time.

Is it safe to convert a bank statement online?

With this tool the statement is never uploaded. The PDF is read, converted and saved by your own browser, and the password you type for a locked file stays in the page. You can check the Network tab in your browser's developer tools during a conversion to see that nothing is sent.

Can it convert a scanned bank statement?

Not directly. A scan is a picture with no text layer, and the tool tells you when a file is one. Download the statement again from online banking, which gives a text PDF, or run the pages through PDF to JPG and then Image to Text for OCR, and check every amount by hand.

Which banks does it work with?

It does not rely on a list of banks. It reads the layout of the statement itself: dates in the left column, descriptions, and right-aligned money columns. That covers most downloaded statements from US, UK, European and South Asian banks. The balance check tells you straight away whether a particular statement was read correctly.

How do I get the statement into QuickBooks?

Download the CSV, keep Date and Description, then use either one signed Amount column or Credit and Debit columns, which are the two layouts Intuit documents. Keep the file at 350 KB or less and upload it under Bank transactions with Link account, Upload from file.

Why are some rows shaded red?

Those rows do not add up: the previous balance plus the credit minus the debit does not equal the balance printed on that row. Usually a column is mapped to the wrong role, debit and credit are swapped, or the bank skipped a balance on a fee line. Fix the dropdowns and the shading updates.

What is the difference between the Excel and CSV downloads?

The Excel file keeps real date cells, number formatting, a frozen header row and filters, so it is ready to work in. The CSV is plain text with numbers like 1150.00, which is what accounting software imports expect. Both hold the same rows and columns.