Skip to content
Free · Runs in your browser

OFX to CSV converter

Turn a bank's OFX, QFX or QBO download into a CSV, one row per transaction. Your statement never leaves your browser.

Works with
OFXQFXQBOCSVXLSX
Opens inExcelGoogle Sheets

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
  • QFX and QBO too
  • Arla Foods logo
  • Bacardi logo
  • British American Tobacco logo
  • Everest Detection logo
  • Golden Acre logo
  • Handlangers logo
  • Inspired Learning Group logo
  • Kantar logo
  • MUFG logo
  • NielsenIQ logo
  • PTI Digital logo
  • RethinkFirst logo
  • Starbucks logo
  • The Specialist Works logo
What you get

A CSV with one row per transaction.

  • Your statement stays on your computer

    The file is read and the CSV is written in your browser. Nothing is sent to Mammoth or anyone else.

  • Every account in the file

    A download with checking, savings and a credit card in it gives one CSV, with an Account column on each row.

  • Investment files too

    Buys, sells and dividends each get a row, with the quantity, the price and the name of the security.

How it works

How to convert OFX to CSV

Each transaction becomes a row with its date, description, memo and amount. Columns the file leaves empty are left out.

  1. 1

    Add your bank file

    Drop an .ofx, .qfx or .qbo file on the box, or choose one from your downloads.

  2. 2

    Check the rows

    A preview shows the transactions. Pick a date style, or split money in and money out.

  3. 3

    Download

    Save the CSV, with commas, semicolons or tabs, or save it as an Excel file.

Your options

Other ways to do it

Python can read an OFX file too. The difference is the code you write, and what happens to the dates.

  • Python with ofxparse

    A script that runs every month

    • Keeps the date the bank postedNo
    • Reads investment statementsYes
    • Every account in one fileYes
    • No code to writeNo
  • This page

    This converter

    A clean CSV in one step

    • Keeps the date the bank postedYes
    • Reads investment statementsYes
    • Every account in one fileYes
    • No code to writeYes
Other ways

How to convert OFX to CSV in Python

The ofxparse library reads an OFX, QFX or QBO file, and Python's csv module writes the rows. Here is the whole script.

Want a spreadsheet, not a CSV? The OFX to Excel converter writes an .xlsx with real dates and amounts. For a PDF statement, use the bank statement converter.

Python with ofxparse
import csv
import ofxparse

with open("statement.ofx", "rb") as f:
    ofx = ofxparse.OfxParser.parse(f)

with open("statement.csv", "w", newline="") as out:
    w = csv.writer(out)
    w.writerow(["date", "payee", "memo", "amount"])
    for account in ofx.accounts:
        for t in account.statement.transactions:
            w.writerow([t.date.date(), t.payee, t.memo, t.amount])

For a bank or credit card file (ofxparse 0.21). 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. Investment rows have no payee, so they need their own columns.

Your file stays private

The converter runs inside this page. Your bank file is read and turned into a CSV on your computer, and nothing is sent to Mammoth. Your account numbers and transactions stay with you.

How we handle your data

Once the page has loaded, it works with your internet switched off.

Every month

Getting a statement every month?

Mammoth can take it from there. Put each month's CSV in a folder and the rows are added to one table, ready to filter, total and download.

Try Mammoth free

Bank statements

Auguststatement-aug.csv
Septemberstatement-sep.csv
Octoberstatement-oct.csv
DriveDropboxOneDriveSFTP
All monthsUp to date
Aug 01Harbor & Pine Payroll2,150.00
Aug 14City Water Utility-58.12
Sep 02Blue Door Coffee-4.50
Oct 05Check 1042-1,200.00
Oct 31Interest paid0.42

Illustration. Every new file in the folder is added to the same table.

Questions

OFX to CSV questions

Is my bank statement uploaded anywhere?
No. The page reads the file and writes the CSV inside your browser. Nothing is sent to Mammoth or anyone else, and once the page has loaded it works with your internet switched off.
Does it convert QFX and QBO files?
Yes. QFX is the name Quicken uses and QBO is the name QuickBooks uses, but inside both are OFX files. Drop any of the three on the box and it reads them the same way.
My file has more than one account in it. What happens?
Every account is read. The CSV gets an Account column, such as Checking 6789 or Credit card 4417, so you can tell the transactions apart or filter to one account.
Can it read investment statements?
Yes. Buys, sells, dividends, reinvestments and cash moves each get a row, with the quantity, the price and the security's name from the file. A file that holds only your current holdings has no transactions, so there is nothing to convert.
Which date does each row get?
The date the bank posted the transaction, as the bank wrote it. OFX dates often carry a time and a time zone, and some tools convert that to UTC, which moves an evening transaction to the next day. This converter keeps the bank's date.
Can I get dates as 10/03/2026 or 03/10/2026?
Yes. Choose under Dates as: 2026-10-03, the US order or the UK and European order. The default, 2026-10-03, is read the same way by every spreadsheet.
Can money in and money out go in separate columns?
Yes. Switch on Money in and out as two columns. Deposits go in one column and payments in the other, both without a minus sign.
What about the balance?
The closing balance the file states is shown under the preview. It is not added as a row, because it is not a transaction.
Is it free?
Yes, with no account and no email.