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

标签 curl google-sheets google-docs-api google-sheets-api

我有一个公开(已发布)的 Google 电子表格,我正在尝试以 TSV 形式以编程方式下载该电子表格。

在我的浏览器中,Google 登录处于事件状态,对于某些实际 key $keyhttps://spreadsheets.google.com/feeds/download/spreadsheets/Export?key= $key&exportFormat=tsv 工作并生成一个 TSV 文件。

但是在我的 shell 中:

  • curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv" 生成一堆 JavaScript。
  • curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=csv" 还会生成一堆 JavaScript。
  • curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=csv" 工作并生成 CSV 文件。
  • curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=tsv" 会生成错误消息。

(尝试使用 wget 产生了类似的结果。)

我该如何进行这项工作?到目前为止我能找到的所有谷歌文档都是针对比简单的下载和格式更改更复杂的问题,如果我的问题的解决方案就在那里,我还没有找到它.

最佳答案

令人沮丧的是,我发现这没有记录。我确信它在某个地方有记录...但我从未找到它。

前提是您的 Google 表格是公开发布的。这对很多人来说并不直观。 (选择文件 -> 发布到网络...)

当您发布工作表时,系统会向您提供一个如下所示的网址供您复制: https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml

该网址很好浏览...但它不是我想要的可下载 CSV。通过长时间的搜索和反复试验,我想出了这个:

curl -L "https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv"> ./my_local.csv

请注意,gid=0通常是正确的,因为它似乎是初始选项卡的默认 ID。但这不一定是正确的。有关 gid 的更多详细信息,请参阅下面的答案。

我发现这个例子非常有帮助。我希望有人评论并提供官方文档的链接,更详细地解释这一点。

关于curl - 从命令行下载/导出公共(public) Google 电子表格作为 TSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24255472/

相关文章:

c++ - 如何使用 libcurl 从 github repo 下载 zip 文件?

google-apps-script - 按钮单击仅适用于 Windows,不适用于 Android 移动工作表

java - 使用 Docs api JAVA 检索文本文档内容

javascript - cURL 到 jQuery AJAX 的转换

php - Slack PHP API - 避免超时错误

javascript - 通过应用 ArrayFormula 的邮件脚本选取正确的单元格值

objective-c - 用于 Google 文档的 iOS Objective-C 包装器

node.js - 任何可以使 NodeJS 更简单地将 Google API 作为服务帐户访问的库?

php - Xampp 返回 "Protocol POST http44 not supported or disabled in libcurl "

javascript - 如何从 Google 表格导入数据?