OFX to Excel converter
Turn a bank's OFX, QFX or QBO download into an Excel spreadsheet, one row per transaction. Your statement never leaves your browser.
Drop an OFX, QFX or QBO file here
An .ofx, .qfx or .qbo file from your bank, up to 100 MB. It stays on your computer.
No file to hand?
- No sign-up
- Nothing uploaded
- Real dates and amounts
A spreadsheet you can sort and total.
Your statement stays on your computer
The file is read and the spreadsheet is built in your browser. Nothing is sent to Mammoth or anyone else.
Dates sort, amounts add up
Dates are Excel dates and amounts are numbers with two decimals, so SUM works the moment the file opens.
Every account in the file
A download with checking, savings and a credit card in it gives one sheet, with an Account column on each row.
How to convert OFX to Excel
Each transaction becomes a row with its date, description, memo and amount. Columns the file leaves empty are left out.
- 1
Add your bank file
Drop an .ofx, .qfx or .qbo file on the box, or choose one from your downloads.
- 2
Check the rows
A preview shows the transactions. Split money in and money out if you want two columns.
- 3
Download
Save the .xlsx file and open it in Excel, Google Sheets or Numbers.
Other ways to do it
Excel's import menus have no OFX option, so the other way is a short Python script. Both give real dates and numbers.
Python with ofxparse and pandas
A script that runs every month
- Dates Excel can sortYes
- Amounts Excel can add upYes
- Keeps the date the bank postedNo
- No code to writeNo
- This page
This converter
A spreadsheet in one step
- Dates Excel can sortYes
- Amounts Excel can add upYes
- Keeps the date the bank postedYes
- No code to writeYes
How to convert OFX to Excel in Python
Excel's import menus have no OFX option. In Python, ofxparse reads the file and pandas writes the spreadsheet.
Need a CSV instead? The OFX to CSV converter lets you pick the date style. For a PDF statement, use the bank statement converter.
import ofxparse
import pandas as pd
with open("statement.ofx", "rb") as f:
ofx = ofxparse.OfxParser.parse(f)
rows = [
{"date": t.date.date(), "payee": t.payee, "memo": t.memo, "amount": float(t.amount)}
for account in ofx.accounts
for t in account.statement.transactions
]
pd.DataFrame(rows).to_excel("statement.xlsx", index=False)For a bank or credit card file (ofxparse 0.21, pandas 2.3, openpyxl). ofxparse turns each posting time into UTC, so in our test a transaction posted at 20:20 on 15 December came out dated 16 December.
Your file stays private
The converter runs inside this page. Your bank file is read and turned into a spreadsheet on your computer, and nothing is sent to Mammoth. Your account numbers and transactions stay with you.
Once the page has loaded, it works with your internet switched off.
Getting a statement every month?
Mammoth can take it from there. Put each month's Excel file in a folder and the rows are added to one table, ready to filter, total and download.
Bank statements
| August | Aug 01 | Harbor & Pine Payroll | 2,150.00 | |
| August | Aug 14 | City Water Utility | -58.12 | |
| September | Sep 02 | Blue Door Coffee | -4.50 | |
| October | Oct 05 | Check 1042 | -1,200.00 | |
| October | Oct 31 | Interest paid | 0.42 |
Illustration. Every new file in the folder is added to the same table.