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
- Open the XO Report task pane
- Click Tables and Reports tab
- Select a table card to start the wizard
- Choose your organizations (multi-select supported)
- For transaction tables, select a date range
- Choose columns to include
- Click Insert Table
Reference Data Tables
Organizations
Connected Xero organizations with details
Accounts
Chart of Accounts from Xero
Contacts
Customers and suppliers with contact details
Items
Inventory and service items
Tracking Categories
Tracking categories and options
Tax Rates
Tax rate configurations
Currencies
Currency list for multi-currency businesses
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.
Invoices
Sales invoices with date and status filtering
Bills
Purchase bills with date and status filtering
Payments
Payment records with date filtering
Bank TransactionsBeta
All money in and out of your bank accounts, checked against Bank Summary
Credit Notes
Credit notes for customers and suppliers
Quotes
Sales quotes with date and status filtering
Purchase Orders
Supplier purchase orders with date and status filtering
Manual Journals
Manual journal lines with debit, credit and tracking
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.