BigQuery to Excel: Export Query Results as .xlsx
Last updated August 29, 2026 · By the SaturnSQL team
BigQuery lives in Google’s world, so every built-in export path leads to CSV, Drive, or Sheets, and none of them to a real .xlsx. If the person waiting for the numbers works in Excel, here are the four routes and what each one costs you.
The short version
The console won’t give you an Excel file. For a one-off, run the query in a client that writes a genuine .xlsx. For a recurring report, schedule the query into a Google Sheet, which any Excel user downloads in one click. The general tradeoffs across all engines are in the export SQL to Excel guide.
Method 1: a one-click .xlsx download
SaturnSQL is a browser-based SQL editor that connects to BigQuery with a read-only service account. Run the query, open the export menu above the results grid, and pick XLSX. The file is a real workbook with a header row: numbers stay numbers, dates stay dates, and Excel opens it without an import dialog. On BigQuery the export is buffered and capped at 100,000 rows.
Method 2: the BigQuery console’s save options
After a query finishes in the console, Save Results offers CSV or JSON, saved locally for small results and routed through Google Drive when the result is too large for a direct download, plus Google Sheets and a BigQuery table. There is no .xlsx option, so Excel will type-guess every column of the CSV on open: leading zeros, 19-digit IDs, and date-shaped strings are all at risk, exactly as catalogued in the general guide.
For genuinely large result sets, skip the console and use the EXPORT DATA statement to write CSV files into a Cloud Storage bucket:
EXPORT DATA OPTIONS(
uri='gs://my-bucket/export/customers-*.csv',
format='CSV', overwrite=true, header=true
) AS
SELECT id, name, created_at FROM mydataset.customers;Method 3: Connected Sheets
Connected Sheets is Google’s native bridge: a Google Sheet queries BigQuery directly and refreshes on demand or on a schedule, no SQL export involved. If your organization’s Workspace edition includes it and the audience lives in Google Sheets anyway, it is a good answer. If the audience lives in Excel, you are still ending every cycle with File → Download → Microsoft Excel (.xlsx), at which point a scheduled export into an ordinary Sheet, or a direct .xlsx download, does the same job with less machinery.
Method 4: stop exporting, schedule it
Most people who export a BigQuery query to Excel once end up exporting the same query every week. In SaturnSQL you save the query, attach a schedule with a cron cadence and an IANA timezone, and each run writes the fresh rows to the destination. Hourly refresh is included in the €19/mo base plan, which also undercuts running the loop through a paid connector tool.
Where scheduled runs deliver
Scheduled runs deliver to a Google Sheet or to Slack. SaturnSQL does not email an .xlsx attachment on a timer. For Excel users the Sheet is one click away, and the URL stays stable, so pivot tables and formulas pointing at it keep working run after run. The full setup is in the BigQuery to Google Sheets guide.
Frequently asked questions
How do I export BigQuery query results to Excel?
The console offers CSV and JSON, not .xlsx. For a genuine workbook, run the query in a client that writes one: SaturnSQL exports XLSX from the browser, capped at 100,000 rows on BigQuery.
How do I export BigQuery to Excel automatically?
Put the saved query on a schedule. SaturnSQL runs it on a cron cadence and writes the rows to a Google Sheet or Slack; the Sheet is one click from an .xlsx download and the link stays stable. Scheduled delivery is to Sheets or Slack, not an emailed attachment.
Should I use Connected Sheets instead?
If the audience lives in Google Sheets and your Workspace edition includes it, yes, it’s Google’s native answer. If the audience lives in Excel, you still end each cycle downloading an .xlsx, so a scheduled export or direct download is usually simpler.
How many rows can I export?
Excel stops at 1,048,576 rows per worksheet. SaturnSQL’s BigQuery export is buffered and capped at 100,000 rows. For bigger result sets, EXPORT DATA to a Cloud Storage bucket is the honest route.
Export a real .xlsx from BigQuery in one click, or put the query on a schedule and stop exporting it at all.