使用 google 查询下载已发布 sheet 的部分内容

Using google query to download parts of a published sheet

这个有效:

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

但是我只想选择计数 > 300 的行。

编码前的查询将是

select * where F > 300

编码后

select%20*%20where%20F%3E300

所以 url 变成

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

上面的行检索了一个文件,但它 returns 整个文件,并且没有过滤。

请注意,已发布的网站 sheet 具有

的形式

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(& 之前没有 space)有效,它会作为 csv 文件下载。这将在 excel 中打开并显示 table.

中的数据

我试过这个:

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*%20where%20F%3E300

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

上面的页面应该public给想要尝试的人。

这可能是发布 sheet 和与拥有 link 的任何人分享整个传播 sheet 之间的问题。

我创建了一个使用 importrange() 的新页面,它从主 sheet 页面吸取了页面,那个是 public。

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

这个修改怎么样?

修改点:

  • 使用query时,请使用like https://docs.google.com/spreadsheets/d/### file ID ###/gviz/tq?gid=###&tq=### query ###.
  • 解码select%20*%20where%20%F%3E300时,为select * where %F>300
    • select * where F > 300select%20%2a%20where%20F%20%3e%20300.
  • 为了输出CSV,请使用tqx=out:csv
  • 请分享电子表格。
    • 在 Google 驱动器上
      • 在电子表格文件中
      • 右键单击 -> 共享 -> 高级 -> 单击 "change" 在 "Private - Only you can access"
      • 勾选"On Anyone with the link"
      • 点击"Save"
      • 在"Link to share",复制URL。
        • https://docs.google.com/spreadsheets/d/### file ID ###/edit?usp=sharing
        • 中检索文件 ID

修改后的 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'

参考:

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

编辑:

下面2个URL是你的URL和我的回答的对比。我回答的 URL 与您的 URL.

匹配

1。你的URL

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

上面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。在我的回答中与您的 URL

匹配
https://docs.google.com/spreadsheets/d/### file ID ###/gviz/tq?gid=###&tqx=out:csv&tq=### query ###

上面URL分开时,

  1. https://docs.google.com/spreadsheets/d/
  2. ### file ID ###
    • 您可以在 here 查看电子表格文件 ID 的详细信息。
  3. /gviz/tq
  4. gid=###
    • 可以使用gid=911257845.
  5. tqx=out:csv
    • 必须使用它来代替 output=csv
  6. tq=### query ###
    • 你可以使用tq=select%20*%20where%20F%3E300.

注:

  • 每个数字对应
  • 并请分享电子表格如下。这与电子表格上的 "Publish to the web" 不同。
    • 在 Google 驱动器上
      • 在电子表格文件中
      • 右键单击 -> 共享 -> 高级 -> 单击 "change" 在 "Private - Only you can access"
      • 勾选"On Anyone with the link"
      • 点击"Save"
      • 在"Link to share",复制URL。