Import from a spreadsheet

Moving in

Coming from Xero, Wave, QuickBooks Online, or a system nobody has heard of? If it can export its journal as a spreadsheet, kBooks can bring the history over. You say which column means what, once, and the same penny check that guards the QuickBooks import proves the books before anything is kept.

What to export

Three spreadsheets, as .csv or .xlsx:

  • The journal, every entry with one line per row: a date, an account, a debit and a credit (or one signed amount). This one is required. Export it up to the last day of the history you are bringing.
  • The chart of accounts, with each account's type. Optional, but with it the importer knows which accounts are bank accounts, income, expenses and so on without asking.
  • The trial balance as of that last day. Optional. With it the check compares the journal against your old system's own totals, account by account. Without it the journal is checked against itself.

In Xero these are the Journal report, the Chart of Accounts export and the Trial Balance. In Wave, the Account Transactions export and the Trial Balance. In QuickBooks Online, the Journal report, the Account List and the Trial Balance, each exported to Excel. Export with all dates or the full history range, so nothing is cut off.

How it works

  1. Open Books settings, then Connections, then Open spreadsheet import.
  2. Pick where the files come from. A known system maps its own columns; for anything else, pick Another spreadsheet and the importer reads the header words.
  3. Set the last day of the history. Entries dated after it are refused, so the books that follow start clean on the next day.
  4. Drop each file into its slot. A table per file shows every column with sample values and what it reads as. Correct any column that was read wrong: the date, the account name or code, the debit and credit, the description, a class or tracking category, the customer or vendor.
  5. If an account's type is not one the importer knows, it asks you which kind it is, right there, before checking.
  6. Press Check the files. The check names anything that does not add up: an entry whose debits and credits differ, a date past the cutover, a trial balance line the journal does not reproduce. Only when everything is proven does Import light up.
  7. Press Import. The chart, the classes, the customers and vendors and every entry are written, and the books open on the history.

Give the mapping a name and save it. Next time the same export comes in, pick the saved mapping and the columns read exactly as they did before.

What the importer will and will not do

  • It refuses rather than guesses. An entry that does not balance is reported by row and is never nudged to fit. A trial balance that disagrees with the journal by a cent stops the import and names the account.
  • It groups lines the way your system did. A transaction id column keeps lines together; without one, lines share a date and a reference; a line with no date at all belongs to the dated line above it, the way the QuickBooks Online journal is written.
  • It reads what your system wrote. Dates as "5 Jan 2025" or "01/05/2025", money with dollar signs and commas, an account named "Checking (090)" with its code in brackets, a Total line at the bottom.
  • It does not read a bank statement. For that, use the bank feeds and the statement import under Banking.