QBOKit

How to convert an Excel file to QBO for QuickBooks

Start with the thing nobody says plainly: QuickBooks will not import your Excel file. Intuit's own upload page lists QBO, QFX and CSV, and .xlsx is not on the list. So the job is never "import this workbook" — it is "turn this workbook into one of the three formats QuickBooks takes", and the one Intuit itself suggests is QBO.

🔒 Convert your workbook now — drop in an .xlsx, get a .QBO, free. It runs in your browser, so your statement is never uploaded.

What QuickBooks Online actually accepts

From Intuit's page on manually uploading transactions:

"Your upload file must be in English and 350 KB or less. We suggest a QuickBooks Online data (QBO) file. You can also upload (Quicken) QFX, or Comma-separated values (CSV) files."

Two limits in that sentence are worth writing down, because people hit them and assume the file is broken:

A year of a busy current account can exceed both. If it does, convert and import a few months at a time — and note that because a QBO carries a transaction id, importing overlapping ranges is safe. More on that below.

"But QuickBooks Desktop imports Excel"

It does, for lists. Intuit's article on CSV import in QuickBooks Desktop describes importing and exporting "lists such as customers, vendors, and items". That is a different feature from getting bank transactions in, and it is where a lot of the confusion on this comes from: people read that Excel import exists, try it on a statement, and get nowhere. Bank and credit card transactions go in through Web Connect or the upload flow, which means QBO, QFX or CSV.

Two routes from a workbook, and why one is less work

Route 1: save as CSV and reformat it by hand

Free, and it works, but it is a chore, because the CSV has to match Intuit's rules rather than your bank's layout. From Intuit's page on formatting CSV files in Excel:

Then delete the title rows, the address block and the closing-balance line, because those are not transactions. And when you are done you still have a CSV, which carries no transaction ids, so a second import of an overlapping period gives you every transaction twice.

Route 2: convert the workbook to QBO

This is what QBOKit does, and it skips the whole list above: the converter reads your bank's layout as it is, works out which columns are which, and writes the fields QuickBooks expects. You get the format Intuit suggests, and you get transaction ids with it.

🔒 The workbook is read inside your browser by the browser's own code. It is not uploaded, not stored and not sent anywhere — there is no server involved in the conversion at all.

The Excel-specific trap: a date is not a date

Excel does not store 1 April 2026 as text. It stores the number 46113, plus a note on how to display it. This is the single most common way an Excel-to-QuickBooks conversion goes quietly wrong.

It bites in two directions:

QBOKit reads the stored number and the cell's display format, so 46113 becomes 1 April 2026 rather than a guess. The preview then shows every date as YYYY-MM-DD, precisely so you can confirm the reading before you download. See also wrong dates after import.

Steps

  1. Have your statement as an .xlsx. Whatever layout your bank uses. Title rows above the headers are fine, and separate Paid in / Paid out columns are fine.
  2. Drop it on the converter. Everything happens in your browser.
  3. Check which sheet it read — it says so by name — and check the three columns it picked.
  4. Check one date between the 1st and the 12th of a month against your statement. If a day/month mix-up has happened, that is where it shows.
  5. Choose .QBO and download, then import it the way Intuit currently describes for Web Connect files.

Convert my Excel file — free

Or see it work on a sample statement — no file of your own needed.

What this does not do

Worth knowing before you start, so nothing is a surprise:

Sources

Related