Google 电子表格 CSV 导出的下载链接 - 带有多个表格

Posted

技术标签:

【中文标题】Google 电子表格 CSV 导出的下载链接 - 带有多个表格【英文标题】:Download link for Google Spreadsheets CSV export - with Multiple Sheets 【发布时间】:2016-02-16 05:38:56 【问题描述】:

我正在尝试找到一个链接,该链接允许我下载我的 Google 电子表格的 CSV 格式版本。目前我正在使用:

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

这很好用,只是它只下载第一个工作表。我的文档有多张纸。有谁知道如何格式化此链接,以便下载所有工作表或特定工作表?比如:

&sheet=all

&sheet=3

【问题讨论】:

接受的答案应该是最后一个:***.com/a/50802790/462152 【参考方案1】:

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

    选择您的工作表(例如:sheet-1) 在下拉菜单中选择.csv文件

【讨论】:

【参考方案2】:

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

linux上的基本用法(windows上应该也可以,我没测试过):

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

地点:

&lt;Spreadshhet ID&gt;:是url里的怪数据https://docs.google.com/spreadsheets/d// &lt;sheet selector (regex)&gt;:是正则表达式https://en.wikipedia.org/wiki/Regular_expression &lt;output directory&gt; 是您文件系统上的现有目录

要一次下载所有工作表,您可以:

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

您会在每张纸上找到一个文件。

不要错过项目 README 中的详细信息(关于身份验证,当前发布的令牌尚未由谷歌验证,您将收到一个身份验证警告,如用于验证过程的此视频中:https://youtu.be/7zacMyv_ooU?t=73)如果害怕你可以在这里阅读代码https://gitlab.com/micro-entreprise/google-sheets-to-csv(它是开源软件!)或使用谷歌服务帐户。

【讨论】:

【参考方案3】:

主要基于@kiwidrew 的回答,我制作了这个小工具,因此您不必手动完成所有操作:Sheet2data.com

【讨论】:

【参考方案4】:

2021 更新... 另一个post 已经很好地回答了这个问题。 我会添加一些需要注意的东西...

在“发布到网络”上有:

    带有用于选择格式和选项的下拉菜单, 您可以选择哪些工作表包含在内, 最后是一个复选框,以确保重新发布更改

Publish to Web Google Sheets

【讨论】:

【参考方案5】:

截至2020年11月,最优雅最简单的解决方案似乎埋在@jrc's reply:

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

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

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

要获得第一个工作表的 CSV 导出的永久链接(即gid=0),请附加:/export?format=csv&amp;gid=0

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

注意:如果您只是导出第一张工作表,即gid=0,则 URL 与原始问题中的 URL 格式相同,即

(默认情况下,如果未指定,端点将采用gid=0

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

【讨论】:

这不是“最优雅和最简单的解决方案”,可能对边缘案例“可访问性”有好处。 它是“最简单的”,因为它使用 GSheets 在其生命周期中的大部分时间都拥有的相同端点格式和约定。与用户从工作表 URL 中已有的内容相比,派生它不需要更多的工作或信息。能够立即派生永久链接不是“边缘情况”【参考方案6】:

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

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

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

【讨论】:

【参考方案7】:

This is a sample csv data可以下载。该数据的下载链接是这样制作的

    Open google sheet->空白->文件->打开 从“我的云端硬盘”或“上传”打开文件 文件 -> 发布到网络 -> “工作表名称”选项和“csv”选项

【讨论】:

我不确定为什么这个答案会被否决。这是一个很好且有效的答案。使用这种方法,我可以提供未经身份验证的 CSV URL,甚至可以提供给定版本的静态导出。 可能是因为 Google 需要几分钟时间来刷新已发布的 CSV。 有谁知道我如何使用curl 下载它?在浏览器中,它给了我一个正确的 CSV 文件,终端得到一个“临时重定向”。 这个答案应该被赞成,但它不一定是解决方案。 @jrc 对此回复的评论 (***.com/a/44184071/160863) 可能更理想,尤其是对于程序员而言。这是 CSV 导出的有效 URL(注意:工作表必须可公开访问):docs.google.com/spreadsheets/d/… @kslstn 使用 curl -L "https://..." 而不是 curl "https://..."。 curl 的 -L 选项跟随重定向。【参考方案8】:

Google 表格中的每个文档都支持“图表工具数据源协议”,这些文章(以相当随意的方式)对此进行了解释:

    "Creating a Chart from a Separate Spreadsheet" "Query Language Reference" "Implementing the Chart Tools Datasource Protocol"

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

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

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

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

导出工作表的一部分:提供range=range 选项,其中范围可以是任何有效的范围说明符,例如A1:C99B2:F

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

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

【讨论】:

@Greg,您可以从电子表格 API 获取工作表列表(名称和 gid)。要使用的 URL 是 GET https://spreadsheets.google.com/feeds/worksheets/fileId/private/full,除非电子表格是公开的,否则您需要 OAuth。 谷歌改变了一些东西。不再工作。相反,您会收到文件已移动的重定向。该链接是 data.csv,您必须将其作为第二步关闭。 似乎正在做某种并不总是有效的处理,为某些单元格返回空值。 这似乎不起作用(不再)? docs.google.com/spreadsheets/dkey/gviz/tq?tqx=out:csv&sheet=sheet_name 不工作。我有一张带有 1 张纸的电子表格。 docs.google.com/spreadsheets/d/… 正确下载。但是docs.google.com/spreadsheets/d/…下载了一些旧版本(大约1个月大)【参考方案9】:
    打开您的 Google 表格 点击“分享”按钮,配置“知道链接的人都可以查看” 按 F12 在 Web 浏览器中启动调试工具并选择“Net”选项卡。 选择“文件 -> 下载为 -> 逗号分隔值 .csv 当前工作表”(或您想要的任何格式,例如 xlsx、ods、pdf、html、csv 或 tsv) 从“网络”选项卡复制 GET 请求的 URL

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

请注意,“gid”参数是工作表 ID,您可以在打开的 Google 工作表的 URL 末尾找到该 ID。 参考:https://developers.google.com/sheets/api/guides/concepts#sheet_id

【讨论】:

似乎即使没有 id 参数也可以工作,如下所示:docs.google.com/spreadsheets/d/KEY/… +1 因为您的链接在我的场景中有效:接受的答案在 sheet_name 参数中似乎不区分大小写(即 foo 和 Foo 将始终为我下载名为 foo 的工作表),而 gid是独一无二的,所以这总是有效的。

以上是关于Google 电子表格 CSV 导出的下载链接 - 带有多个表格的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google Sheet API 导出 csv?

通过 Google Drive API 从本地 CSV 文件创建 Google Drive 电子表格

google docs电子表格导出:如何从时间、日期中删除撇号[关闭]

从命令行下载/导出公共 Google 电子表格作为 TSV?

如何使用管道分隔符导出到 .csv

如何以 CSV 表格格式将原始数据源从 Google Big Query 导出到 R 服务器?