Building a QuickBooks Desktop Company File from Excel Spreadsheets

A QuickBooks Desktop build from Excel fails when lists, trial balances, and open invoices import in the wrong order and never tie back to the source.

A workbook can keep a small company's books for years, then stop being enough. Moving it into QuickBooks Desktop works when you treat it as a migration, not a copy and paste. Our engineers run these builds in a fixed order: lists first, then balances, then open documents, then a full tie-out. This page is that playbook.

When should you cut the spreadsheet over?

Cut over on the first day of a fiscal year, a quarter, or at minimum a month. The old books must be closed through the day before, because you will import their final position. Freeze the workbook at that date and save a locked copy; it becomes the source of truth for every number you load. Late entries go into QuickBooks only, never back into the sheet. Create the company file in a normal user folder such as Documents. Saving inside the program's install folder invites permission errors.

Clean the source workbook first

Build one sheet per list: accounts, customers, vendors, items, open invoices, open bills. Give every sheet stable headers, because the import wizard maps by column. Remove duplicate names; QuickBooks matches by exact name and will merge two different customers that share one. Trim stray spaces, blank rows, and mixed date formats. Put a control total under each numeric column before the first row imports. Column mapping is where most attempts stall; our QuickBooks import troubleshooting guides cover the errors we see most.

Build the chart of accounts first

Accounts import before everything else because items and opening entries all point at them. Import the account list with the balance column left empty. Balances loaded per account each post to Opening Balance Equity, which buries the tie-out you need at the end. A single journal entry keeps the source visible and the audit simple. After the import, confirm the account count matches the sheet, then back up the file.

Import the names and items

Import customers and vendors with the opening balance field blank. Their balances arrive as real documents in the next phase, which is what preserves aging. Items come next, mapped to income and cost of goods sold accounts that now exist. The item import does not carry inventory quantities or values, so plan a stock adjustment for after the trial balance. Check each list count against its control total. Fix rejected rows and reimport only those.

Bring in open invoices and bills

Desktop's built-in Excel import handles lists, not transactions. Open invoices and bills arrive through IIF files, an import utility, or keyed entry when the count is small. IIF bypasses some of the validation the forms apply, so a bad row can post silently to the wrong account. Import a five-row test batch first and inspect the result. Only then load the full set. Every document keeps its original date, terms, and due date, or the aging report will lie to you.

Backups define your restart points

Take a backup after every phase and name it for that phase. If a load lands badly, restore the previous backup rather than deleting rows one at a time. A restore takes minutes and leaves nothing behind. Hand-deleting hundreds of entries leaves orphans and broken links behind. The restore is the rollback; there is no halfway.

Post the opening trial balance

Enter one general journal entry dated the last day of the old books. It carries every balance sheet account except accounts receivable, accounts payable, and inventory asset; those three are already established by the documents and the counted stock. Cutting over mid-year means adding year-to-date income and expense lines as well, which a year-start cutover avoids. Any residual goes to retained earnings, not to a suspense account you plan to fix later. Run the trial balance report the moment the entry posts.

Reconcile everything to the source spreadsheet

This step is what makes the migration real. Compare the QuickBooks trial balance to the frozen workbook account by account, to the penny. Match the receivables aging total to the open invoice schedule and the payables aging to the open bill schedule. Opening Balance Equity must read zero; reclassify any residue to retained earnings and find out why it existed. Bank balances must agree to statements, not just to the sheet. The discipline behind a monthly close is the same skill this step needs; our notes on what a migration does to a set of books go deeper on the working papers.

Signs the build is clean

The trial balance ties to the source in both directions. Both aging schedules tie. Opening Balance Equity reads zero, the first bank reconciliation clears with no unexplained difference, and the built-in Verify Data check reports no problems. A parallel month is optional insurance: keep the spreadsheet updated in read-only fashion and compare totals weekly. When the month agrees, retire the workbook to the archive and work only in QuickBooks.

Keep going

Your Desktop doesn’t have to end when Intuit says so.

Start with the master survival guide, or jump straight to the fix you need.