使用谷歌查询下载已发布工作表的部分内容

She*_*ord 1 google-sheets google-query-language

这有效:

curl 'https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/pub?gid=911257845&single=true&output=csv'
Run Code Online (Sandbox Code Playgroud)

但是我只想选取 count > 300 的行。

编码之前的查询是

select * where F > 300
Run Code Online (Sandbox Code Playgroud)

编码后

select%20*%20where%20F%3E300
Run Code Online (Sandbox Code Playgroud)

所以网址就变成了

https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/pub?gid=911257845&output=csv&tq=select%20*%20where%20F%3E300
Run Code Online (Sandbox Code Playgroud)

上面的行可以检索文件,但它返回整个文件,并且不进行过滤。

请注意,已发布的网页表格的形式为

https://docs.google.com/spreadsheets/d/e/KEY/pub?gid=GID

https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/pub?gid=911257845

这有效。添加 &output=csv 到它(& 之前没有空格)可以工作,并且它会作为 csv 文件下载。这将在 Excel 中打开并显示表中的数据。

我试过这个:

https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/pub?gid=911257845&output=csv&tq=select%20 *%20where% 20F%3E%20300

https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/gviz/tq?gid=911257845&output=csv&tq=select%20 * %20其中%20F%3E300

并出现错误——资源不可用。

上面的页面应该对想要尝试的人公开。

这可能是发布工作表和向拥有链接的任何人共享整个电子表格之间的问题。

我创建了一个新页面,它使用 importrange() 从主工作表中获取该页面,并且该页面是公共的。

https://docs.google.com/spreadsheets/d/1-lqLuYJyHAKix-T8NR8wV8ZUUbVOJrZTysccid2-ycs/edit?usp=sharing

Tan*_*ike 5

这个修改怎么样?

修改要点:

  • 当使用查询时,请使用 like https://docs.google.com/spreadsheets/d/### file ID ###/gviz/tq?gid=###&tq=### query ###
  • 解码后select%20*%20where%20%F%3E300select * where %F>300
    • select * where F > 300select%20%2a%20where%20F%20%3e%20300
  • 为了输出 CSV,请使用tqx=out:csv.
  • 请分享电子表格。
    • 在 Google 云端硬盘上
      • 在电子表格文件上
      • 右键->共享->高级->点击“私人-只有你可以访问”处的“更改”
      • 勾选“知道链接的任何人”
      • 点击“保存”
      • 在“共享链接”处,复制 URL。
        • 从中检索文件 IDhttps://docs.google.com/spreadsheets/d/### file ID ###/edit?usp=sharing

修改后的curl命令:

curl 'https://docs.google.com/spreadsheets/d/### file ID ###/gviz/tq?gid=911257845&tq=select%20%2a%20where%20F%20%3e%20300&tqx=out:csv'
Run Code Online (Sandbox Code Playgroud)

参考 :

如果我误解了你的问题,我很抱歉。

编辑 :

下面2个网址是你的网址和我的答案的对比。我的回答的网址与您的网址相匹配。

1.您的网址

https://docs.google.com/spreadsheets/d/e/2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc/gviz/tq?gid=911257845&output=csv&tq=select%20*%20where%20F%3E300
Run Code Online (Sandbox Code Playgroud)

当上面的URL被分开时,

  1. https://docs.google.com/spreadsheets/d/e/
    • e/不需要。
  2. 2PACX-1vS3iBtVf4i_won5zAN9NGPqhcd6CcTb-4QHxpisSjCmlgV95B6mFmZvtMaC9GPvD7m8kD-6XLkVAhfc
    • 这不是电子表格的文件 ID。
  3. /gviz/tq
  4. gid=911257845
  5. output=csv
  6. tq=select%20*%20where%20F%3E300

2.在我的回答中与您的网址相匹配

https://docs.google.com/spreadsheets/d/### file ID ###/gviz/tq?gid=###&tqx=out:csv&tq=### query ###
Run Code Online (Sandbox Code Playgroud)

当上面的URL被分开时,

  1. https://docs.google.com/spreadsheets/d/
  2. ### file ID ###
  3. /gviz/tq
  4. gid=###
    • 您可以使用gid=911257845
  5. tqx=out:csv
    • 必须使用它来代替output=csv.
  6. tq=### query ###
    • 您可以使用tq=select%20*%20where%20F%3E300

笔记 :

  • 每个数字都对应。
  • 请分享电子表格如下。这与电子表格上的“发布到网络”不同。
    • 在 Google 云端硬盘上