Upload an Excel workbook
Excel files (.xlsx, .xls, .xlsm) are treated as a bundle of CSVs — every sheet becomes a table in one dataset. Formulas are evaluated server-side; merged cells are flattened.
Upload
Sources → Add → Excel. Drop the file. We open the workbook, enumerate sheets, and present a tree:
- Sheets are checkable — uncheck what you don't want.
- Each sheet gets its own schema editor — same type-inference UI as CSV.
- Named ranges are listed separately and can be imported as their own tables.
Formula handling
- Static formulas (
=A1+B1,=SUM(A:A),=VLOOKUP(...)) — evaluated at import time; the result becomes a column value. - Volatile formulas (
=NOW(),=RAND()) — frozen at the value Excel computed when the workbook was saved. - External references (
='[Other.xlsx]Sheet1'!A1) — cannot be resolved without the target workbook; the cell becomes#REF.
If you need formulas to live, build them in OneAnalytics as measures instead — much faster, reproducible, and visible to everyone.
Merged cells
Merged cell blocks are unmerged on import — the top-left cell's value is broadcast into every formerly-merged cell. This is what 95 % of Excel analytics workflows expect.
Multiple "headers" and pivot tables
Excel pivot tables are imported as static tables of their current state (the pivot cache). Dynamic rebuilding is not supported; if you need that, reimport the source data and rebuild as a matrix visual in OneAnalytics.
Sheet name → table name
- Sheet "Sales Data 2026" → table
sales_data_2026 - Special chars stripped, lowercased, spaces → underscore
- Duplicate names get
_2,_3suffixes
Large workbooks
- 50 000 rows per sheet is the sweet spot.
- > 500 000 rows per sheet works but is slow (10-30 s per sheet).
- For very large tabular data, export to CSV and use CSV upload — 5× faster.
Refresh
Excel uploads are manual by default — re-upload in Dataset → Refresh. For scheduled refresh, upload the file to Google Drive, Dropbox, or OneDrive and connect the corresponding storage source — the workbook refreshes on a cron.