Skip to main content

Free for 14 days · from $9.90/mo

See plans

Data Tables

Pull complete datasets from Xero as Excel tables. Tables give you full lists of invoices, contacts, accounts, and more - ready for filtering, sorting, and analysis.

Every table works in Excel and Google Sheets.

Tables vs Formulas

Use Tables when:

  • You need complete lists (all invoices, all contacts)
  • You want to filter and sort in Excel
  • You need transaction details for analysis

Use Formulas when:

  • You need specific values (account balance, contact email)
  • You're building calculations
  • You want data in specific cells

How to Insert a Table

  1. Open the XO Report task pane
  2. Click Tables and Reports tab
  3. Select a table card to start the wizard
  4. Choose your organizations (multi-select supported)
  5. For transaction tables, select a date range
  6. Choose columns to include
  7. Click Insert Table

Reference Data Tables

Transaction Tables

Transaction tables require a date range. Status filtering is available for Invoices, Bills, Credit Notes, Quotes, Purchase Orders and Manual Journals. Payments do not support status filtering; deleted payments are excluded. Bank Transactions (Beta) and Quotes are limited to one year (365 days) per table.

The "Open in Xero" column

When you insert an Invoices, Bills, Credit Notes, Quotes, Purchase Orders, Manual Journals, Payments, or Contacts table, XO Report adds an XeroLink column, ticked on by default. Each link opens that row's own record in Xero, in the right organization, so you can jump from a figure in Excel to the source document without searching or copying IDs.

  • One click to the source. Invoice and bill rows open the invoice or bill, credit note rows open the credit note, quote rows open the quote, purchase order rows open the purchase order, manual journal rows open the journal, payment rows open the payment (where available), and contact rows open the contact.
  • Payments: where a link is available, a payment row opens straight to that payment in Xero. Payment types that aren't linked yet show a blank cell instead of a guessed link.
  • Bank Transactions (Beta): this table also has a XeroLink column. Rows open the transaction in Xero; check lines and some transfer legs show a blank cell.
  • Blank instead of broken. When a row can't be linked reliably, XO Report shows a blank cell rather than a guessed link.
  • Always current. Links regenerate every time you refresh the table, using each row's latest data.
  • Keeps working after Convert to Values (Excel). If you use XO Report's Convert to Values in Excel to freeze a sheet into static numbers, the Open in Xero links stay live, even for people who don't have the add-in.
  • Signed out? Clicking a link while signed out of Xero prompts a Xero login, then lands on the right record.
  • Built a table earlier? Insert it again to add the column. The setting applies to each new table as you insert it.

In Excel, selecting the column also adds a small hidden helper column that stores each link's address. You might see it if you unhide columns or save as CSV. It's harmless. Keep it in place and the links keep working. Google Sheets writes each link straight into its cell, with no helper column.

Multi-Organization Support

When you select multiple organizations, data is combined into one table with OrgID and OrgName columns for filtering.

Where to put XO tables on the sheet

By default, XO Report puts every new table on its own sheet. Keep it that way to leave room for each table to grow on refresh.

Avoid stacking tables on the same sheet

When a refreshed table needs more rows, it grows downward. If it reaches another table below it, refresh fails. Empty rows in between provide room only until the growing table uses them up.

Need multiple tables on one sheet?

Place them side by side in different columns, not stacked.

In Excel, don't rename or copy-paste XO tables

XO tables are linked to Xero by their name, which always starts with XO_. Copy-pasting or renaming an XO table breaks its link to the saved settings, even if the new name keeps that prefix. Keep the full original table name. To reuse a layout, insert a new table from the task pane.

If you see the error "It can't grow into the table directly below it. Move or delete that table, then refresh again.": move or delete the table underneath, then refresh again. See Troubleshooting.

Table Refresh

In Excel, click anywhere in your table and use the Refresh Table button to get the latest data. Your date presets (like "Last Month") are re-calculated and custom columns you added are preserved.

In Google Sheets, open the Manage tab and click the refresh icon next to a table, or use Refresh All Tables. Date presets are re-calculated the same way, but custom columns you add to the right of a table are not kept on refresh.