Format guide

QBO to Excel: How to Open a QBO File in Excel

Excel can't read .qbo files natively. Here are three ways to get the data into a spreadsheet — including one that takes about ten seconds.

100% private
Never uploaded
Instant
Runs in your browser
CSV & Excel
Real spreadsheet output
No signup
No account, no card
Convert a QBO file to Excel

Drop your file below — runs entirely in your browser, nothing is uploaded.

Drag and drop your QBO file hereor click to browse your files QBOExcel

Why Excel can't open a QBO file

A .qbo file is a QuickBooks Web Connect download. Despite looking like a data file, it isn't a spreadsheet — it's Open Financial Exchange data, a markup format designed for software to read rather than people. Excel has no importer for it, so you get one of three unhelpful outcomes:

1
Double-clicking does nothing useful
Windows and macOS usually hand the file to QuickBooks, or offer an "open with" prompt. Neither gets you a spreadsheet.
2
Renaming it to .xml sort of works
Excel will open it as XML and show you a tree of tags. Every transaction is in there, but spread across rows in a shape no one would call usable.
3
Older files fail hardest
Many banks still emit OFX 1.x, which is SGML rather than XML — leaf tags often have no closing tag at all. Excel's XML importer rejects those outright.
The short version
If you just want the data, use the converter above — it reads all three flavours (.qbo, .ofx, .qfx), handles unclosed SGML tags, and produces a real .xlsx workbook. The rest of this page explains what's inside the file and what to do when the output looks wrong.

What's actually inside a QBO file

Open one in a plain text editor and you'll find something like this. Each transaction is a STMTTRN block, wrapped in a statement section that identifies the account:

Inside a .qbo file
<BANKACCTFROM>
  <BANKID>021000021
  <ACCTID>1234567890
  <ACCTTYPE>CHECKING
</BANKACCTFROM>
<BANKTRANLIST>
  <STMTTRN>
    <TRNTYPE>DEBIT
    <DTPOSTED>20250601120000[0:GMT]
    <TRNAMT>-45.20
    <FITID>202506010001
    <NAME>STARBUCKS STORE 04821
    <MEMO>CARD PURCHASE
  </STMTTRN>
</BANKTRANLIST>

Note the missing closing tags on the leaf elements — that's valid OFX 1.x and it is exactly what breaks generic XML tools. Note also DTPOSTED: a date, a time, and a timezone marker crammed into one field. Only the first eight digits mean anything for bookkeeping, which is why a good converter strips the rest and a lazy one hands you 20250601120000[0:GMT] in a date column.

FITID is worth keeping. It's the bank's unique ID for that transaction, and it's what accounting software uses to avoid importing the same transaction twice.

Method 1: use the converter on this page

1
Drop in the file
.qbo, .ofx and .qfx all work — they share the same underlying structure. It's read in your browser; nothing is sent to a server, which you can confirm in your browser's Network tab.
2
Check what was found
You'll see the transaction count and any warnings — a file containing more than one account says so, and rows with missing dates or amounts are reported rather than dropped silently.
3
Download the workbook
An .xlsx file with Date, Payee, Description, Category, Transaction ID, Amount, Dr/Cr and Balance. Multi-account files get one sheet per account.

Method 2: rename to .xml and import manually

This works, costs nothing, and is worth knowing if you'd rather not use a tool at all. Copy the file, change the extension to .xml, then open it in Excel and choose "As an XML table" when prompted. Excel builds a table from the tags.

Two things to expect. First, it only works on OFX 2.x files with proper closing tags — if Excel reports a parse error, your file is SGML-style and this route is closed. Second, you'll get raw fields: dates as 20250601120000, one column per tag, and the account details interleaved with transactions. Cleaning that up by hand takes longer than the conversion did.

Where the manual route breaks down
Unclosed SGML tags stop Excel's importer dead. Multi-account files interleave two statements into one table with no way to tell them apart. Date and amount columns arrive as text, so sorting and totalling misbehave until you convert them. And every one of these has to be redone next month, on the next file.

Method 3: when your file is actually a PDF

A common surprise: people looking for a QBO-to-Excel converter often don't have a QBO file. Most banks only offer structured downloads for recent months — beyond that window you get a PDF, which no format converter can help with.

That needs a statement parser: something that works out the column layout from the document itself, handles scanned pages with OCR, and checks that the running balance reconciles so a misread row surfaces instead of quietly landing in your books.

MethodHandles scansUploads your fileEffortOutput
Converter on this pagen/aSecondsClean .xlsx, one sheet per account
Rename to .xmln/a10–20 min per fileRaw tags, manual cleanup
PDF statement converterSecondsExcel, CSV, QBO, OFX, QIF

Only have a PDF statement? That converts too.

A QBO file means your bank gave you structured data — which most banks only do for the last few months. Beyond that you get a PDF, and a PDF won't open in Excel. BalanceExtract reads those directly: it works out the column layout from the document itself, handles scanned statements with OCR, checks that every running balance reconciles, and flags any row it isn't confident about before you export.

Same Excel output, same on-device processing, nothing uploaded.

Convert a PDF statement6 pages free, no signup, no card

Troubleshooting your converted file

Dates look like 20250601120000

That's the raw DTPOSTED field: date, then time, sometimes a timezone marker. Only the leading eight digits are meaningful. The converter here keeps just the date; if another tool gave you the full string, you're seeing the field untouched.

Amounts are negative when I expected positive

OFX signs from the account's point of view — money leaving is negative, money arriving is positive. Credit-card files follow the same rule, so a purchase is negative and a payment towards the card is positive. It reads backwards at first but it's consistent.

There's a Transaction ID column I didn't ask for

That's FITID, and you want it. Accounting software uses it to spot transactions it has already imported. Deleting the column before importing is how you end up with every transaction twice.

Two accounts are mixed together

Your download bundled several statements. Each account gets its own sheet in the Excel export here — if a tool gave you one interleaved list, it read the transactions without reading the account sections around them.

The file is .qfx or .ofx, not .qbo

Same format underneath, different extension and header. The converter above accepts all three, so there's nothing to change.

Some rows are missing

Check the warnings shown after conversion. Records with an unparseable date or amount are reported and counted rather than dropped silently — a converter that shows no warnings and fewer rows than you expected is the one to distrust.

Once the data is in Excel

Build a pivot table

Select the table, Insert → PivotTable, then Payee as rows and Amount as values. Two clicks to see where the money actually went, which is usually the reason for the conversion in the first place.

Use the Category column

Transactions are categorised on your device as part of the conversion. Sort or filter by it to split business from personal, or to sanity-check a month before it reaches your books.

Reconcile against your records

The Balance column carries the bank's own running balance. If it doesn't move by the Amount on every row, something upstream is wrong — that's a genuinely useful check and almost nobody uses it.

Import into accounting software

QuickBooks, Xero, Wave and FreshBooks all take CSV. If you'd rather skip column mapping, convert to native QBO or OFX instead and import that.

Frequently asked questions

Why won't Excel open my QBO file?
Because a QBO file isn't a spreadsheet. It's a financial-data format built on OFX, which is SGML-style markup rather than rows and columns. Excel has no importer for it, so double-clicking either does nothing or drops you into an import wizard that can't make sense of the tags.
Can I convert QBO to Excel for free?
Yes. Drop the file into the converter on this page and download an .xlsx workbook. No signup, no upload — the conversion runs in your browser, so the file never leaves your device.
What is the FITID column in my converted file?
FITID is the bank's unique identifier for that transaction. QuickBooks uses it to recognise transactions it has already imported, so keeping it means re-importing an overlapping date range won't create duplicates. It's exported as Transaction ID.
Why are my dates showing as 20250601120000?
That's the raw OFX date field — YYYYMMDD followed by a time and sometimes a timezone marker like [0:GMT]. Only the date portion matters for bookkeeping, so this converter strips the rest and gives you a clean date. Converters that don't strip it are handing you the raw field.
My file has two accounts in it. What happens?
They're kept separate. A bank download often bundles a current account and a credit card into one file, each as its own statement section. Every transaction is tagged with its account, and the Excel export puts each account on its own sheet rather than interleaving two date sequences into one confusing list.
Is QBO the same as OFX and QFX?
Effectively yes — same underlying structure, different extensions and headers. QBO is QuickBooks' flavour, QFX is Quicken's, OFX is the open standard. The converter here accepts all three.
What if my bank only gave me a PDF?
Then you don't have a QBO file at all, and no format converter will help. You need a statement parser that reads the PDF's layout — see the PDF section further down this page.

How BalanceExtract compares

Honest side-by-side write-ups, including where each of them is the better choice.

Other converters