How to convert a bank statement PDF to Excel (without retyping)
A bank statement PDF looks like a table but is not one. This guide explains why copy-paste breaks it, the three ways to get a real spreadsheet out of it, and the four checks that tell you the result is trustworthy.
Why copy-paste never works
A PDF does not store a table. It stores characters with coordinates — "print 1250.00 at this position on the page". The grid you see is drawn on top. When you select and copy, the coordinates are thrown away and you get a stream of text, which is why pasting into Excel produces one long column instead of five.
Three specific things go wrong every time:
- Debit and Credit collapse into one column. Banks print both in the same visual region and leave the unused one blank. Once the layout is gone, there is nothing to say whether 1250.00 was money in or money out.
- Narration wraps onto two or three lines. A single UPI transaction becomes three spreadsheet rows, two of which have no date and no amount.
- Page furniture gets mixed in. Headers, footers, page numbers, the "continued" line and the closing-balance block all arrive as if they were transactions.
The three ways to do it
Method 1 — Excel's own PDF import (free, works on tidy statements)
- In Excel, go to Data → Get Data → From File → From PDF and choose your statement.
- The Navigator lists each table Excel found, usually one per page (Table001, Table002, …). Click each to preview it.
- Pick a table and choose Transform Data to open Power Query rather than loading it straight away.
- In Power Query, promote the first row to headers, delete the repeated header rows from the other pages, and append the page tables into one query.
- Set the Date column type to Date and the amount columns to Decimal Number, then Close & Load.
This is genuinely good on clean, single-layout statements. It falls apart when the column positions shift between pages, when narration wraps, or when the statement is scanned — Power Query sees no table at all in an image.
Method 2 — Convert with this site (free, handles the messy cases)
- Open the converter and drop your PDF on the upload box. Nothing is uploaded for a text-based PDF — it is read in your browser.
- Wait for the table to be read. Wrapped narration lines are stitched back onto their transaction, and header, footer and summary rows are dropped.
- Check the review screen: opening balance, closing balance, row count, and any row the balance check could not reconcile.
- Press Download Excel for an XLSX with Date, Narration, Debit, Credit and Balance as five separate columns, one transaction per row.
Method 3 — Ask the bank for CSV or Excel first
Before converting anything, look in net banking. Most Indian banks will hand you the same statement as CSV, XLS or a "delimited" text file if you pick the right option on the download screen — HDFC, ICICI, Axis, SBI and Kotak all offer it. A native download is always cleaner than any conversion, so it is worth thirty seconds of looking. The catch is the date range: banks often limit it to the last three to six months, so older periods still arrive as PDFs.
Scanned statements and photographs
If you cannot select the text in the PDF with your cursor, it is an image and there is nothing to extract — the page has to be recognised character by character. That works, but accuracy depends on the input:
- Scan at 300 DPI or more, in greyscale, with the page straight.
- If you are photographing a printout, keep the phone parallel to the paper and avoid shadow across the page.
- Expect digit confusion in low-quality scans — 1 and 7, 5 and 6, 0 and 8 — which is exactly why the balance check matters. A single misread digit breaks the running balance and gets flagged.
- Handwritten annotations in the margin will not be read reliably. Ignore them.
A password-protected statement should be opened in any PDF reader and saved once without the password before uploading, since an encrypted file cannot be parsed.
Cleaning the sheet after conversion
- Fix the dates. Indian statements are DD/MM/YYYY; Excel on a US locale may read 03/04/2026 as 4 March. Select the column, use Data → Text to Columns → Date: DMY, and the whole column converts correctly.
- Make amounts numeric. Remove thousands separators, the ₹ symbol and any trailing "Cr"/"Dr" text. A right-aligned figure is a number; a left-aligned one is still text.
- Delete blank and repeated header rows left over from page breaks.
- Add a balance-check column. In a spare column put = previous balance − debit + credit − current balance. Every row should read zero. Any non-zero row is where the extraction went wrong.
- Format as a table (Ctrl+T) so filters and totals behave, then add a totals row for Debit and Credit.
Four checks before you trust the file
- Opening balance in the sheet equals the opening balance printed on the PDF.
- Closing balance matches too — if both ends match, the middle is almost certainly complete.
- Row count matches the number of transactions on the statement.
- Total debits minus total credits equals closing minus opening balance.
Those four take under a minute and catch essentially every serious extraction error, whichever method you used.
Where to go next
If the spreadsheet is the destination, you are done. If it is a stop on the way into accounting software, do not import the plain Excel — most importers want a specific layout or a native banking format. See importing a bank statement into TallyPrime and the guide to OFX, QIF, MT940, CAMT.053 and BAI2. If you are converting a statement for a return, the interest, TDS and bank charges guide covers which figures to pull out.