Free Excel to QBO Converter

Drop in an Excel workbook of bank transactions and get back a .qbo file QuickBooks Desktop imports. No need to save it as CSV first — we read .xlsx directly, and your spreadsheet never leaves your browser.

No file handy? Try a sample: ·

How to convert Excel to QBO

  1. Have the transactions in one sheet, one per row, with a date column, a description column and an amount column. Extra columns are fine — we ignore what we don't need.
  2. Drop the file above. We work out which column is which and show you what we found.
  3. Check the first transaction against your statement. Right date, right amount, and the minus sign on the right side. That thirty-second check catches almost every problem before it reaches your books.
  4. Download the .qbo, then in QuickBooks Desktop: Banking › Bank Feeds › Import Web Connect File.

Why QuickBooks won't just take the spreadsheet

QuickBooks Desktop does have an Excel import — it's under File › Utilities › Import › Excel Files — and that is the thing that trips people up, because it looks like the answer. It isn't: that importer is for lists. Customers, vendors, products and services. Bank and credit card transactions don't go through it at all.

Transactions arrive through the bank feed, and the bank feed reads one thing: a Web Connect file, which is a .qbo. So a spreadsheet of transactions has to become a .qbo before QuickBooks will look at it. That's the whole job of this page.

On QuickBooks Online? You probably don't need this page

Online's upload — Transactions › Bank transactions › Upload from file — reads CSV, not spreadsheets. So on Online your workbook has to stop being an .xlsx either way, and the shortest route is File › Save As › CSV, then upload that. No converter needed.

Worth knowing before you reach for a .qbo instead: we've had a report of a .qbo upload failing on Online while the plain CSV loaded first time. On Online the CSV is the thing to try, not the fallback.

The converter on this page is for QuickBooks Desktop, which has no CSV import at all — there a .qbo really is the only way in.

Three things Excel does to bank data that CSV doesn't

1. Dates are secretly numbers

Excel doesn't store 01/05/2024. It stores 45296 — the number of days since the end of 1899 — and then decides how to display it based on the cell's number format. Two cells holding the identical number can show as a date in one column and as a plain figure in the next.

That's why this converter reads the workbook's style table rather than just the values: it's the only way to tell a date from an amount that happens to be five digits. If your date column arrives here as bare numbers, the cells lost their date formatting somewhere upstream — select the column in Excel and format it as a date, then try again.

2. Workbooks have more than one sheet

A CSV is one table and there's nothing to get wrong. A workbook often has a cover page, a summary tab, and the actual transactions somewhere in the middle. We use the first sheet that has more than one row of data, and we tell you which one we used in the results panel above. If we picked wrong, move the transactions to the first sheet — or delete the sheets you don't need — and drop it again.

3. "Save As CSV" is where dates get rewritten

Saving to CSV is a perfectly good route and plenty of people take it. The catch is that Excel writes dates out in whatever format your machine's regional settings say, so a US file opened on a European machine can come out as DD/MM/YYYY — and a file where every day-of-month happens to be 12 or lower is unreadable either way, because nothing in it says which convention was used.

Reading the .xlsx directly skips that entirely: a date cell carries an unambiguous number, so there's no format to guess at. If you do go through CSV, we still warn you when a file's dates could be read both ways.

What we can and can't read

FileWhat to do
.xlsxYesDrop it above
.xlsmYesDrop it above — macros are ignored, not run
.csvYesDrop it above, or use CSV to QBO
.xls (pre-2007)NoOpen it, File › Save As › .xlsx, then drop that
Numbers, LibreOfficeNoExport as .xlsx or .csv first
PDF statementsNoLook for a spreadsheet or CSV download on your bank's site

Using something else?

Frequently asked questions

How do I convert an Excel file to a QBO file?

Drop the .xlsx onto this page. It's read in your browser, the date, description and amount columns are worked out for you, and you get a .qbo to download. Then in QuickBooks Desktop: Banking › Bank Feeds › Import Web Connect File.

Do I need to save my Excel file as CSV first?

No — .xlsx and .xlsm are read directly. Going through CSV also works, it's just an extra step, and it's the step where Excel most often rewrites the date column on the way out.

Why are my dates showing as five-digit numbers?

Because those cells aren't formatted as dates any more. Excel stores every date as a day count — 5 January 2024 is 45296 — and only the cell's number format makes it look like a date. Select the column in Excel, format it as a date, save, and drop it here again.

Which sheet do you use if my workbook has several?

The first one with more than one row of data, and we name it in the results panel plus list the ones we skipped. If it's the wrong one, move the transactions to the first sheet or delete the extra sheets and convert again.

Can you read the older .xls format?

No. .xls is a completely different binary file from .xlsx, despite the similar name. Open it in Excel and use File › Save As to make an .xlsx or a .csv.

My workbook has formulas — will the results come through?

Yes. Excel saves the last calculated value alongside each formula, and that's the value we read. One thing to watch: if a formula pulls from another workbook that wasn't open when the file was last saved, the stored value may be stale. Open the file, let it recalculate, save, then convert.

Is my bank data uploaded anywhere?

No. The conversion runs entirely in your browser, and the page's Content Security Policy blocks all network requests — the browser itself enforces that nothing is sent. There's no server-side spreadsheet library involved; the unzipping and parsing happen in the page.