Download link for Google Spreadsheets CSV export - with Multiple Sheets
Every document in Google Sheets supports the "Chart Tools datasource protocol", which is explained (in a rather haphazard way) in these articles:
- "Creating a Chart from a Separate Spreadsheet"
- "Query Language Reference"
- "Implementing the Chart Tools Datasource Protocol"
To download a specific sheet as a CSV file, replace {key}
with the document's ID and {sheet_name}
with the name of the sheet to export:
https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}
The datasource protocol is quite flexible. Various other options include:
Response Format: Options include tqx=out:csv
(CSV format), tqx=out:html
(HTML table), and tqx=out:json
(JSON data).
Export part of a sheet: Supply the range={range}
option, where the range can be any valid range specifier, e.g. A1:C99
or B2:F
.
Execute a SQL query: Supply the tq={query}
option, such as tq=SELECT a, b, (d+e)*2 WHERE c < 100 AND x = 'yes'
.
Export textual data: Supply the headers=0
option in case your fields contain textual data, otherwise they might be cut out during export.
- Open your Google sheet
- Click the "Share" button and configure "Anyone with the link can view"
- Press F12 to launch debugging tools in your web browser and select the "Net" tab.
- Select "File -> Download As -> Comma-separated values .csv current sheet" (or whatever format you want, e.g. xlsx, ods, pdf, html, csv, or tsv)
- Copy the URL of the GET request from the "Net" tab
It will look something like this: https://docs.google.com/spreadsheets/d/KEY/export?format=csv&id=KEY&gid=SHEET_ID
Note, the "gid" parameter is the sheet ID, which you can find at the end of the URL of the open Google sheet. Reference: https://developers.google.com/sheets/api/guides/concepts#sheet_id