Convert a Bank Statement PDF to CSV or Excel
Your accountant wants six months of transactions as a spreadsheet. The bank gives you six PDFs. Maybe you're categorizing spending, preparing a loan application, or reconciling a business account. Either way, the data is trapped in a format built for printing, and retyping 400 transactions is not a real option.
The usual answer is an online "PDF to Excel" converter. Think about what that means for a bank statement: your account number, balance, and every merchant you've paid, uploaded to a server you know nothing about. ExploreMyData does the conversion inside your browser instead. The statement never leaves your machine. You can watch the network tab while it works: no upload happens.
The three-minute version
- Open the app and drop your statement PDF onto the page.
- If the PDF is password-protected, type the password when asked. Decryption happens locally.
- A picker lists the tables found in the file. Pick the transactions table: it's the one with the most rows, and the preview under each name shows its columns.
- Check the grid. You should see one row per transaction with columns like
Date,Description,Debit,Credit,Balance. - Click Export and choose Export as CSV or Export as Excel (.xlsx).
That's the whole flow when the statement is a well-behaved, text-based PDF. Multi-page statements need no extra work: the parser stacks the transaction rows from every page into one table and drops the column headers your bank repeats at the top of each page.
What the result looks like
A typical statement page turns into rows like this:
| Date | Description | Debit | Credit | Balance |
|---|---|---|---|---|
| 01-07-2026 | UPI/P2M/518812345678/Swiggy | 482.00 | 1,04,518.75 | |
| 02-07-2026 | NEFT/HDFC0001234/ACME SALARY | 85,000.00 | 1,89,518.75 | |
| 03-07-2026 | ATM WDL/MUMBAI/000321 | 5,000.00 | 1,84,518.75 |
Bank PDFs love to visually merge cells: the date and the long UPI description often arrive as one blob of text, and a deposit amount can sit fused to the running balance. The parser splits these apart using patterns (a leading date, two adjacent amounts) rather than hoping the spacing is clean. You should still scan the first and last few rows after import; that's where layout quirks show up.
Fix the types before you export
Amounts in statements come formatted for humans: 1,04,518.75,
$2,340.00, sometimes
(500.00) for a reversal. If you plan to sum or
chart them, convert them to numbers first:
- Click the green + in the Pipeline panel and select Convert Type from the Transform group.
- Pick the
Debitcolumn and convert to numeric. Currency symbols, thousands separators, and accounting parentheses are stripped automatically. Repeat for Credit and Balance. - Run it once more on the
Datecolumn with date as the target. Formats like 01-07-2026, 01/07/26, and 1-Jul-2026 are auto-detected.
One caveat for European-style statements: in 1.234,56,
the dots are thousands separators. The automatic cleaning assumes comma-as-thousands, so use
Find & Replace to swap the separators before converting.
Reconcile before you trust it
This step takes one minute and catches extraction errors before they reach your accountant. Every statement prints its own totals: total withdrawals, total deposits, closing balance. Verify them:
- Add a Group & Aggregate step with no grouping column.
- Add two aggregations: SUM of
Debitand SUM ofCredit. - Compare the two numbers against the totals printed on the statement's last page.
If they match, the extraction is complete and correct. If they're off, sort by amount and look for a row where two numbers fused together, or a page where a transaction got dropped. Delete the aggregate step afterwards; your transaction rows are untouched underneath it.
Scanned statements
If the statement is a scan (you can't select text in a PDF viewer), the parser renders each page and runs OCR on it, still in your browser. Expect a short wait per page and a review pass afterwards: OCR can read a 0 as an 8 in a bad scan, and reference columns sometimes come out incomplete. The reconciliation step above is not optional for scanned statements; it's the difference between a usable export and a wrong one.
When it doesn't work
- The picker shows several small tables instead of one big one. Statement PDFs carry summary boxes (account details, totals) that are real tables too. Load the big one; ignore or deselect the rest.
- Dates and descriptions share one column. Add a Split Column step on the first space, or a Regex Capture with
^(\d{2}-\d{2}-\d{4})\s+(.*)$to pull the date out. - A photographed statement won't OCR. OCR needs a flat, straight scan. Photos taken at an angle produce garbage; re-scan or use the bank's CSV export if one exists.
Worth checking first: many banks quietly offer CSV or Excel downloads in their web banking, buried under "statement format" options. If yours does, use it. This workflow is for the statements that only exist as PDF.
Convert your statement now →