下载 link 用于 Google 电子表格 CSV 导出 - 包含多个工作表

Download link for Google Spreadsheets CSV export - with Multiple Sheets

我正在尝试找到一个 link,它允许我下载我的 Google Spreadsheet 的 CSV 格式版本。目前我正在使用:

https://docs.google.com/spreadsheets/d/DOCID/export?format=csv

这很好用,只是它只下载第一个 Sheet。我的文档有多个 sheet。有谁知道如何格式化此 link 以便它下载所有 sheet 或特定的 sheet?类似于:

&sheet=all

&sheet=3

Google Sheets 中的每个文档都支持 "Chart Tools datasource protocol",这些文章对此进行了解释(以一种相当随意的方式):

  1. "Creating a Chart from a Separate Spreadsheet"
  2. "Query Language Reference"
  3. "Implementing the Chart Tools Datasource Protocol"

要将特定 sheet 下载为 CSV 文件,请将 {key} 替换为文档 ID,将 {sheet_name} 替换为要导出的 sheet 的名称:

https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}

数据源协议非常灵活。各种其他选项包括:

响应格式:选项包括tqx=out:csv(CSV格式)、tqx=out:html(HTMLtable)和tqx=out:json (JSON 数据).

Export part of a sheet: 提供 range={range} 选项,其中范围可以是任何有效的范围说明符,例如A1:C99B2:F.

执行SQL查询:提供tq={query}选项,例如tq=SELECT a, b, (d+e)*2 WHERE c < 100 AND x = 'yes'.

导出文本数据:如果您的字段包含文本数据,请提供headers=0选项,否则它们可能会在导出过程中被删除。

  1. 打开你的Googlesheet
  2. 单击 "Share" 按钮并配置 "Anyone with the link can view"
  3. 按 F12 在 Web 浏览器和 select "Net" 选项卡中启动调试工具。
  4. Select "File -> Download As -> Comma-separated values .csv current sheet"(或您想要的任何格式,例如 xlsx、ods、pdf、html、csv 或 tsv)
  5. 从 "Net" 选项卡复制 GET 请求的 URL

它将看起来像这样: https://docs.google.com/spreadsheets/d/KEY/export?format=csv&id=KEY&gid=SHEET_ID

注意,"gid"参数是sheetID,在Googlesheet的URL末尾可以找到. 参考:https://developers.google.com/sheets/api/guides/concepts#sheet_id

This is a sample csv data可以下载。此数据的下载 link 是这样制作的

  1. Open google sheet->空白->文件->打开
  2. 从 "My Drive" 或 "Upload"
  3. 打开文件
  4. 文件 -> 发布到网络 -> "Sheet name" 选项和 "csv" 选项

以下 URL 格式(作为模板字符串)是我唯一适用的格式:

`https://docs.google.com/spreadsheets/d/e/${id}/pub?output=csv&id=${id}&gid=${gid}`

这假定整个文档已发布到网络上。

截至 2020 年 11 月,最优雅、最简单的解决方案似乎埋藏在 :

https://docs.google.com/spreadsheets/d/KEY/export?format=csv&gid=SHEET_ID

这是一个活生生的例子;鉴于 Google Sheet 的 KEY1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw

即:https://docs.google.com/spreadsheets/d/1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw

要获取其第一个 sheet(即 gid=0)的 CSV 导出的永久链接,请附加:/export?format=csv&gid=0:

https://docs.google.com/spreadsheets/d/1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw/export?format=csv&gid=0

注意:如果您只是导出第一个sheet,即gid=0,那么URL与URL 原问题中的格式,即

(默认情况下,端点将假定为 gid=0,如果未指定)

https://docs.google.com/spreadsheets/d/DOCID/export?format=csv

2021更新... 问题在另一个 post 中得到了很好的回答。 我会添加一些注意事项...

在“发布到网络”上有:

  1. 包含用于选择格式的选项的下拉菜单,
  2. 选择你想要包括的张纸,
  3. 最后一个复选框以确保重新发布更改

Publish to Web Google Sheets

主要基于@kiwidrew 的回答,我制作了这个小工具,这样您就不必全部手动完成:Sheet2data.com

几个月前,我开发了一个方便的 python 命令行应用程序,名为 google-sheets-to-csv:https://pypi.org/project/google-sheets-to-csv/ 允许下载多个sheet秒。

linux 的基本用法(可能也适用于 windows,我还没有测试):

pip install google-sheets-to-csv
gs-to-csv <spreadsheet ID> <sheet selector (regex)> <output directory>

其中:

要一次下载所有 sheet,您可以执行以下操作:

mkdir output/
gs-to-csv DOCID ".*" output/

您会发现每个 sheet.

一个文件

不要错过项目自述文件中的详细信息(关于身份验证,当前发布的令牌尚未由 google 验证,您将收到一条身份验证警告,如用于验证过程的视频中所示:https://youtu.be/7zacMyv_ooU?t=73) If are afraid you can read the code here https://gitlab.com/micro-entreprise/google-sheets-to-csv(它是开源软件!)或使用 google 服务帐户。

转到 文件 > 共享 > 发布到网络

  1. select你的sheet(例如:sheet-1)
  2. 下拉菜单中 select .csv 文件