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>
地点:
<Spreadshhet ID>
:是url里的怪数据https://docs.google.com/spreadsheets/d//
<sheet selector (regex)>
:是正则表达式https://en.wikipedia.org/wiki/Regular_expression
<output directory>
是您文件系统上的现有目录
要一次下载所有工作表,您可以:
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 表格的 KEY
为 1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw
即:https://docs.google.com/spreadsheets/d/1CTgM1g_aYoWFFpHU6A_qyqWGH0ulCFhs67uAcRVf1Rw
要获得第一个工作表的 CSV 导出的永久链接(即gid=0
),请附加:/export?format=csv&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&sheet=sheet_name
数据源协议非常灵活。其他各种选项包括:
响应格式:选项包括tqx=out:csv
(CSV 格式)、tqx=out:html
(HTML 表格)和tqx=out:json
(JSON 数据)。
导出工作表的一部分:提供range=range
选项,其中范围可以是任何有效的范围说明符,例如A1:C99
或 B2:F
。
执行 SQL 查询:提供tq=query
选项,例如tq=SELECT a, b, (d+e)*2 WHERE c < 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 Drive API 从本地 CSV 文件创建 Google Drive 电子表格
google docs电子表格导出:如何从时间、日期中删除撇号[关闭]