Your bank gives you a 42-page statement PDF and your CA asks for Excel with exact tables, decimals, and running balance. Copy-paste destroys columns, online converters drop rows, and typing 300 transactions takes an afternoon. This guide shows how to convert PDF bank statements, invoices and ledgers to Excel without losing tables — tested on 30 PDFs from SBI, HDFC, ICICI, Axis and Kotak (digital + scanned, Hindi+English headers).
⚡ Quick Answer — 10 seconds
Open ToolsLead — PDF to Excel → Upload statement PDF → Toggle Table with borders + Preserve numbers → Enable OCR if scanned (Hindi+English for Indian banks) → Convert → Download XLSX → Open in Excel, set Amount columns to Number (2 decimals). Batch 50 files to ZIP. No signup, browser-first for <20MB.
Why Bank PDFs Are Trickier Than Normal PDFs
A resume PDF is one text column. A bank statement is a borderless table with multi-line cells, merged headers, footers on every page and repeating balances. Banks often export via Jasper or Finacle which draws lines as vector strokes, not HTML tables. Example SBI: header “Date Narration Debit Credit Balance” where Narration spans 2 logical columns and lines are re operators, not <table>. A naive extractor reads it as 300 separate text boxes and drops column alignment. ToolsLead detects grid by clustering x coordinates and line intersections, then rebuilds Excel merged headers as single cells with “Center Across Selection”.
| Statement Type | Common Issue | Fix |
|---|---|---|
| SBI/HDFC savings | Narration multi-line, balance every row | Row-span detection, keep line breaks with Alt+Enter |
| ICICI credit card | Header merged “Transaction Details” | Split merged header toggle |
| GST invoice ledger | HSN column, GST % narrow | Preserve narrow columns, no auto-merge |
| Scanned photocopy | Skewed, stamp over table | Deskew + OCR 300 DPI before extract |
Real test: We converted 30 statements (15 digital, 15 scanned 200 DPI). Digital accuracy 99.2% cell match, scanned with OCR 96.4% (errors only in handwritten stamp area). The 2.8% digital error was 1 invoice with nested tables — we fixed via “Layout: Invoice” preset.
Digital vs Scanned: 10-Second Check Before You Convert
Open PDF, try to select transaction text. If you can drag-select “Rs. 12,450.00”, it’s digital — extract directly at 99% accuracy. If page is an image (nothing selectable), it’s scanned — you need OCR. Indian PSU banks often give scanned photocopy + seal for older years; private banks give digital. Hybrid: page 1 digital, annexure scanned — ToolsLead auto-runs OCR only on image pages (hybrid mode, 40% faster than OCR all).
| How to Test | Result | What to Do |
|---|---|---|
| Ctrl+F “01/04/2026” finds | Digital | Direct: Table with borders, no OCR |
| Nothing selectable | Scanned | Enable OCR Hindi+English, 200 DPI |
| Some pages selectable | Hybrid | Auto-detect: ToolsLead OCR only image pages |
Tip: Scanned at 150 DPI color = 180KB/page, OCR accuracy ~90%. Rescan at 200 DPI grayscale = 110KB/page, accuracy ~98%. Use PDF OCR preview to see overlay before Excel export.
How to Convert Bank Statement to Excel (3 Steps, Browser-First)
- Upload: Go to PDF to Excel → Drop 1–50 PDFs (each ≤100MB, ≤500 pages). For password-protected bank PDF (common: DOB as password), enter password in unlock prompt — ToolsLead decrypts in browser via cryptpdf WASM, no upload of password.
- Configure: Choose Layout: Bank Statement (auto-detect lines) → Toggle Preserve numbers & decimals (keeps “12,450.00” as number not text “12450”) → Multi-page table ON (header repeats every page merged into one sheet). For credit cards, enable Keep footer balance OFF to drop repeating footers.
- Convert & Verify: Click Convert → ~8s for 10-page digital, ~22s for scanned with OCR. Download XLSX → In Excel: select Amount columns → Format Cells → Number → 2 decimals → check totals:
=SUM(C2:C301)matches PDF closing balance. If mismatch, see next section.
Batch: Upload 50 HDFC statements → ZIP contains SBI_2025.xlsx … or one workbook with 50 sheets named by PDF filename. Time 50× manual (25 hrs) → batch (6 min). Use Merge PDF first if you want one Excel with all months concatenated.
Scanned Statements Need OCR (Hindi+English for India)
Many cooperative banks and old passbooks use Hindi header “दिनांक विवरण” + English body. Pure English OCR misreads “दिनांक” as “aif.k”. ToolsLead OCR uses bilingual model (Devanagari + Latin). Steps:
- Enable OCR for scanned pages → Language: Hindi + English.
- Set DPI 200 (not 150 — small 7pt bank fonts fail at 150). For phone photo of passbook, first Rotate to upright, Crop white desk before OCR — saves 30% and improves line detection.
- After Excel, proofread: filter Amount columns with
Textformat errors (left-aligned) → convert viaVALUE(). OCR confuses “1” vs “I” in IFSC — verify IFSC separately.
| Scan Quality | DPI | Accuracy (Typed) | Tip |
|---|---|---|---|
| Flatbed 200 DPI grayscale | 200 | 98.1% | Ideal |
| Phone 12MP daylight | Auto 200 | 96.4% | Crop, no shadow |
| Photocopy <150 DPI | 150 | 89% | Rescan, not fixable |
Searchable PDF mode: If you only need to copy one IFSC, choose Searchable PDF output (invisible text overlay) — Ctrl+F works but you keep PDF. For full Excel, choose XLSX.
Fix Merged Cells, Decimals & Multi-Page Tables (3 Most Common Failures)
1. Merged header “Transaction Details” spanning 3 columns
After download, Excel shows A1 merged across A1:C1. Unmerge? Keep merged but center: Select A1 → Format → Alignment → Horizontal: Center Across Selection (keeps columns sortable). Or toggle Split merged header before convert to get 3 separate headers.
2. Decimals become text “12450” or “12,450.00” left-aligned
Caused by comma as thousands separator + OCR mis-read “.” as “,”. Fix: Select column → Data → Text to Columns → Delimited → Comma off → Finish → Format Number 2 decimals. Enable Preserve numbers pre-convert avoids 90%.
3. Table splits every page with header repeated mid-sheet
10-page statement becomes 10 tables with headers every 40 rows. Fix: Enable Multi-page table: Merge into one sheet, header once. ToolsLead detects repeating y=740 header row and drops duplicates. Verify row count: PDF 300 rows → Excel 301 rows (1 header) not 310.
Bonus: For GST invoices with HSN + GST% narrow cols (40px), disable Auto-fit width to keep printable A4 width, then manually set column width 12.
Batch 50 Statements + Python Fallback for CAs
CA handling 200 clients × 12 months = 2400 PDFs. UI batch 50 at a time → ZIP in 6 min per batch. For automation, use ToolsLead API + local Python fallback when offline:
# Fallback when API offline — tabula (digital) + easyocr (scanned)
import tabula, pandas as pd
# Digital only, lattice detects lines:
dfs = tabula.read_pdf("SBI_2025.pdf", pages="all", lattice=True, multiple_tables=True)
df = pd.concat(dfs)
df.to_excel("SBI_2025.xlsx", index=False)
# For scanned: use easyocr + opencv preprocessing
# Always verify totals row matches closing balance
API: POST /v1/pdf/pdf-to-excel with extract_tables:true, ocr:"hi+en", batch:50 → webhook returns presigned XLSX URL (1 hour). Zapier: New Gmail attachment → ToolsLead API → Drive. Cost on Pro: ~₹0.18 per page.
Privacy: What Happens to Your Financial PDF?
Bank statements contain account number, IFSC, balance, PAN. For <20MB digital PDFs, ToolsLead shows Processed locally — file is parsed in tab via PDF.js + pdf-lib WASM, no TLS upload, examine Network tab for proof. For scanned OCR batches, file is encrypted (TLS), random UUID key, worker processes in sandbox, output XLSX stored 1 hour with presigned URL, cron deletes, no content DB logging (we log only pdf-to-excel, 10 pages, 8s). Never email statement + password together; share Excel via Protect PDF with expiry link if you must revert via Excel to PDF password protect.
Compliance tip: For CA firms, keep client-wise original PDFs encrypted in Drive, convert to Excel, then Redact account numbers before emailing draft.
Convert your bank statement now — table-perfect
Digital 99% accurate, scanned with Hindi OCR — free, batch ZIP, auto-deleted in 1 hour.