Bank Statement CSV to Excel: 5 Quick Ways [2026]
You've got a CSV file from your bank. Rows of transactions, comma-separated, no formatting. Now you need it in Excel with proper columns, readable dates, and maybe some formulas to total things up.
Sounds simple. And it mostly is, except for the gotchas that trip people up every time: dates flipping to numbers, amounts losing decimal places, leading zeros vanishing from account numbers.
I've done this hundreds of times. Here are the 5 methods that actually work, plus how to avoid the formatting traps.
Why Not Just Open the CSV in Excel?
You can. Double-click a CSV file and Excel opens it. But here's what goes wrong:
Date formatting breaks. Excel guesses your date format. If your bank uses DD/MM/YYYY and Excel expects MM/DD/YYYY, January 3rd becomes March 1st. You won't notice until your reconciliation is off by months.
Leading zeros disappear. Account numbers like 007842 become 7842. Reference numbers starting with zero get truncated. Excel treats them as numbers, not text.
Large numbers get scientific notation. Transaction IDs with 15+ digits turn into 1.23E+14. The original number is gone. You can't recover it.
Comma-separated amounts fail. If your bank uses commas for thousands (1,234.56), Excel might split that into two columns. European banks using commas as decimal separators (1.234,56) cause even more chaos.

That's why "just opening it" isn't enough. You need to import it properly.
Method 1: Excel Text Import Wizard (Best Control)
This gives you the most control over how each column gets interpreted. Works in Excel 2016, 2019, 2021, and Microsoft 365.
Step by step:
- Open Excel (blank workbook)
- Go to Data tab, then click From Text/CSV
- Browse to your bank CSV file
- In the preview window, check:
- Delimiter: Comma (or semicolon for European banks)
- Data type detection: Select "Do not detect data types" if available
- Click Transform Data to open Power Query Editor
- For date columns: right-click the column header, then Change Type to Date
- For account/reference numbers: Change Type to Text (preserves leading zeros)
- For amounts: Change Type to Decimal Number
- Click Close & Load
The key step most people skip is setting column types manually. By default, Excel auto-detects types and gets them wrong about 30% of the time with financial data.
Pro tip: If your CSV uses semicolons (common with European banks), switch the delimiter in step 4. Excel sometimes defaults to comma even when the file uses semicolons.
Method 2: Automated Converter Tool (Fastest)
If you don't want to mess with import settings and column types, an automated tool handles it for you.
- Go to ConvertBankToExcel.com
- Upload your bank statement (PDF or CSV)
- The tool structures your data automatically
- Download as a formatted Excel file

What makes this different from importing manually: the converter recognizes bank statement formats. It knows that "01/03/2026" from a UK bank is January 3rd, not March 1st. It preserves reference numbers as text. It formats amounts correctly with two decimal places.
Upload your CSV now and get a clean Excel file in seconds.
Method 3: Google Sheets as an Intermediary
Google Sheets handles CSV imports more gracefully than Excel in many cases. Here's the workaround:
- Go to Google Sheets, then File, then Import
- Upload your CSV file
- Choose "Replace current sheet"
- Set separator type to Comma (or detect automatically)
- Check the data looks correct
- File, then Download, then Microsoft Excel (.xlsx)
Why this works better sometimes: Google Sheets is less aggressive about type conversion. It tends to leave text as text and numbers as numbers. It also handles UTF-8 encoding better, which matters if your bank descriptions include special characters.
The downside: you need internet access, and you're uploading financial data to Google's servers. For business use, check your company's data handling policy first.
Method 4: Python pandas for Bulk Conversion
Got multiple CSV files? Or need to do this every month? Python handles batch conversion and lets you add formatting in one script.
import pandas as pd
from openpyxl.styles import Font
# Read CSV with explicit types to prevent data loss
df = pd.read_csv("bank_statement.csv", dtype={
"Account": str, # Preserve leading zeros
"Reference": str, # Keep as text
})
# Parse dates properly
df["Date"] = pd.to_datetime(df["Date"], dayfirst=True)
# Clean amount column
df["Amount"] = pd.to_numeric(
df["Amount"].astype(str).str.replace(",", ""),
errors="coerce"
)
# Export to Excel with formatting
with pd.ExcelWriter("statement.xlsx", engine="openpyxl") as writer:
df.to_excel(writer, index=False, sheet_name="Transactions")
# Access worksheet for formatting
ws = writer.sheets["Transactions"]
# Format amount column as currency
for row in range(2, len(df) + 2):
ws.cell(row=row, column=3).number_format = '#,##0.00'
# Bold headers
for cell in ws[1]:
cell.font = Font(bold=True)
print(f"Converted {len(df)} transactions to Excel")
This script handles the three common problems automatically: dates parse correctly with dayfirst=True, account numbers stay as text with dtype=str, and amounts get proper currency formatting.
Batch conversion for multiple files:
import glob
for csv_file in glob.glob("statements/*.csv"):
df = pd.read_csv(csv_file, dtype=str)
xlsx_file = csv_file.replace(".csv", ".xlsx")
df.to_excel(xlsx_file, index=False)
print(f"Converted: {csv_file} -> {xlsx_file}")

Method 5: LibreOffice Calc (Free Desktop Option)
No Excel license? LibreOffice Calc is free and handles CSV imports well.
- Open LibreOffice Calc
- File, then Open, then select your CSV file
- The Text Import dialog appears automatically
- Set options:
- Character set: UTF-8
- Separator: Comma
- Column type: Click each column and set it (Text, Date, Standard)
- Click OK
- File, then Save As, then select .xlsx format
LibreOffice's import dialog is actually better than Excel's for this specific task. You can click each column individually and set its type before import. With Excel, you often have to fix things after the fact.
The catch: LibreOffice's .xlsx compatibility isn't 100%. Complex formulas or conditional formatting might not transfer perfectly if you need to share the file with Excel users. For plain transaction data, it works fine.
Fixing Common CSV-to-Excel Problems
Even with the right import method, you might hit these issues.
Dates Showing as Numbers
If you see 45658 instead of 2026-01-15, select the column, right-click, then Format Cells, and choose Date format. If that doesn't fix it, the data imported as text. Use =DATEVALUE() to convert.
Negative Amounts Missing
Some banks export debits in parentheses: (125.00). Excel imports this as text. Fix: Find and Replace "(" with "-", then ")" with nothing. Then convert the column to Number format.
Duplicate Headers or Empty Rows
Banks sometimes include summary rows, disclaimers, or multiple header lines in their CSV exports. After import, sort by date column. Non-transaction rows will cluster at the top or bottom. Delete them manually.
Garbled Characters
If merchant names show garbled text instead of accented characters, reopen using File then Import (not double-click) and set encoding to UTF-8 in the import dialog.
Useful Formulas After Import
Once your CSV data is in Excel, add these:
Running balance:
=SUM($C$2:C2)
Put this in column D, row 2. Copy it down for all rows to get a running total.
Monthly totals:
=SUMPRODUCT((MONTH(A2:A100)=1)*(C2:C100))
Replace "1" with the month number you want.
Category filter with SUMIFS:
=SUMIFS(C:C, E:E, "Groceries", A:A, ">="&DATE(2026,1,1))
Totals all grocery transactions from January 2026 onward.
Which Method Is Right for You?
| Method | Best For | Speed | Accuracy |
|---|---|---|---|
| Text Import Wizard | Full control over column types | 3-5 min | High |
| Automated converter | Any bank format, hands-off | 30 sec | High |
| Google Sheets | Quick convert, no software needed | 2-3 min | Medium |
| Python pandas | Monthly batch processing | 5 min setup | High |
| LibreOffice Calc | Free Excel alternative | 3-5 min | High |
For a one-time job, Method 1 or Method 2 is the way to go. For recurring monthly work, set up the Python script once and never think about it again.
If accuracy matters (and with financial data, it always does), avoid double-clicking to open. Take 30 extra seconds to import properly and save yourself an hour of debugging later.
Wrapping Up
CSV to Excel sounds basic until your dates flip, zeros vanish, or amounts turn into scientific notation. The fix is straightforward: import with intention instead of just opening the file.
Need to convert a bank statement from PDF first? Start with ConvertBankToExcel.com. It handles the PDF extraction and gives you a clean CSV or Excel file directly. No formatting headaches.
Get started free--no signup required.

![Bank Statement CSV to Excel: 5 Quick Ways [2026]](/_next/image?url=https%3A%2F%2Fconvertbanktoexcel.com%2Fapi%2Fuploads%2Fimages%2F1770673508941-26f3f489.jpg&w=1920&q=75)