I\'m trying to find a link which allows me to download a CSV formatted version of my Google Spreadsheet. Currently I\'m using:
https://docs.google.com/sprea
As of November 2020, the most elegant and simplest solution seems to be buried in @jrc's reply:
https://docs.google.com/spreadsheets/d/KEY/export?format=csv&gid=SHEET_ID
Here's a live example; given the Google Sheet that has a KEY
of 1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw
i.e: https://docs.google.com/spreadsheets/d/1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw
To get the permalink to a CSV export of its first sheet (i.e. gid=0
), append: /export?format=csv&gid=0
:
https://docs.google.com/spreadsheets/d/1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw/export?format=csv&gid=0
Note: if you're just exporting the first sheet, i.e. gid=0
, then the URL is the same as the URL format posited in the original question, i.e.
(by default, the endpoint will assume gid=0
if it's left unspecified)
https://docs.google.com/spreadsheets/d/DOCID/export?format=csv
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
This is a sample csv data can be downloaded. Download link for this data was made like this
Every document in Google Sheets supports the "Chart Tools datasource protocol", which is explained (in a rather haphazard way) in these articles:
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.
The following URL format (as a template string) is the only one that worked from me:
`https://docs.google.com/spreadsheets/d/e/${id}/pub?output=csv&id=${id}&gid=${gid}`
This assumes the entire document has been published to the web.