我有一个公开(已发布)的 Google 电子表格,我正在尝试以 TSV 形式以编程方式下载该电子表格。
在我的浏览器中,Google 登录处于事件状态,对于某些实际 key $key
,https://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/