How to convert a bank statement to CSV
CSV is the lowest common denominator of financial data. Almost every spreadsheet, accounting app, budgeting tool and analysis script can read it. If you need your transactions somewhere other than a PDF, CSV is usually the safest intermediate format.
This guide explains what a usable CSV looks like, how to produce one by hand, and how to check it.
First option: your bank's own export
If your online banking offers a CSV download for the period you need, start there. It comes straight from the bank's system, so there are no parsing errors. Look in the account's transaction history for "Export", "Download" or a file icon. Some banks also offer OFX, QFX or QIF, which accounting software often prefers.
Converting a PDF makes sense when that download isn't available: historical statements beyond the portal's window, statements received from clients, or accounts that only issue PDFs.
Rowsafe reads your PDF in the browser and checks every row against the running balance.
Open the converter
What a good bank CSV looks like
A CSV is plain text with one row per line and commas between fields. For bank transactions, a clean file looks like this:
Date,Description,Debit,Credit,Balance
2026-10-01,Opening balance,,,4250.00
2026-10-02,CARD PAYMENT OFFICE SUPPLIES,86.40,,4163.60
2026-10-03,TRANSFER FROM CLIENT LTD,,1500.00,5663.60
2026-10-05,"DIRECT DEBIT INSURANCE, MONTHLY",120.00,,5543.60
Things that make it reliable:
- One header row, then one transaction per row. No page headers or subtotals in the middle.
- Unambiguous dates. ISO format (
YYYY-MM-DD) can't be misread. If the target app needsDD/MM/YYYYorMM/DD/YYYY, convert at the end, deliberately. - Plain numbers. No currency symbols, no thousands separators, a dot as the decimal mark (unless your target app expects otherwise).
- A consistent sign convention. Either separate Debit and Credit columns, or a single Amount column where money out is negative. Not a mix.
- Quoted text where needed. A description containing a comma must be wrapped in double quotes, as in the last row above, or it will split into two columns.
Method 1: Excel, then Save As CSV
If you have Excel for Microsoft 365 on Windows, use Data → Get Data → From File → From PDF to pull the transaction tables in. The PDF to Excel guide walks through this step by step.
Once the data is clean in a sheet:
- Delete everything except the header row and the transactions.
- Format the date column as
yyyy-mm-dd(Format Cells → Custom). - Format amount columns as plain numbers with two decimals and no separators.
- File → Save As → CSV UTF-8 (Comma delimited).
Watch out: Excel saves numbers as they are displayed, and dates in the format shown. If a column shows 1,250.00, the CSV will contain "1,250.00". Set the formats before saving.
Method 2: Copy, paste and clean
Copy the transaction text from the PDF into a spreadsheet, then split it with Data → Text to Columns. This works, but expect to fix:
- Descriptions that wrap onto a second line, which create extra rows.
- Dates that paste as text, which won't sort.
- Negative amounts shown as
(50.00),50.00-, or50.00 DR. Convert them all to-50.00. - Page headers and footers repeated on every page.
- Thousands separators that turn numbers into text.
Google Sheets can't open PDFs directly. You can open the PDF in Google Docs and copy from there, but the conversion often reflows columns and adds cleanup.
Common CSV traps
| Trap | Symptom | Prevention |
|---|---|---|
| Excel reopens the CSV and reformats it | Dates switch format, long reference numbers turn into 1.23E+15 |
Import CSVs via Data → From Text/CSV and set column types, rather than double-clicking |
| Leading zeros dropped | Reference 00123 becomes 123 |
Import that column as Text |
| Wrong delimiter | Everything in column A | Some regional settings use semicolons; check the delimiter on import and export |
| Encoding | Accented payee names show as é |
Save as CSV UTF-8 |
| Mixed sign conventions | Totals don't match the statement | Pick one convention and apply it to every row |
Verify before you use it
A CSV can look perfect and still be wrong. One missed row on page 3 throws off every total after it. Check two things:
- Totals. Opening balance + sum of credits − sum of debits should equal the closing balance printed on the statement.
- Running balance, row by row. If the statement prints a balance after each transaction, recompute it: previous balance + credit − debit. Any row where your figure differs from the printed one is where the error is.
The reconciliation guide has formulas for both.
Where Rowsafe helps
Rowsafe converts text-based PDF statements to CSV in your browser, without uploading the file.
- The PDF is processed locally by JavaScript. Your statement never reaches our server. You can verify this in your browser's developer tools.
- Rowsafe recomputes the running balance for every row and flags rows that don't add up, so the check above is already done when the preview appears.
- You can adjust column mapping in the preview grid if a layout comes out wrong.
- Password-protected PDFs are supported. The password stays on your device.
CSV export is included on the free plan (3 statements a day, with balance verification). Pro ($12/month) adds unlimited statements, batch conversion, and Excel, QuickBooks (QBO), OFX, Xero CSV and JSON exports. See pricing.
Limitations: text-based PDFs only. Scanned or photographed statements are not supported yet. Unusual layouts may need a manual column fix, and the balance check will show you when they do.
FAQ
What's the difference between CSV and Excel (XLSX)? CSV is plain text with no formatting, formulas or multiple sheets. XLSX is Excel's native format. Use CSV for importing into other software; use XLSX when people will work in the file.
Should I use one Amount column or separate Debit and Credit columns? It depends on the destination. Many accounting imports accept either. A single signed Amount column is easier for formulas; separate columns are easier to read. Check what the target app expects.
Why does my CSV look fine in a text editor but wrong in Excel? Excel interprets data on open: it guesses dates and strips leading zeros. Use Data → From Text/CSV and set types yourself.
Can I combine several statements into one CSV? Yes. Stack them in a sheet, remove duplicate header rows, sort by date and save. Rowsafe Pro can batch-convert and merge multiple PDFs into one file.
Rowsafe reads your PDF in the browser and checks every row against the running balance.
Open the converter