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

时间:2018-01-29 23:35:43

标签: 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'

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

编码前的查询将是

select * where F > 300

编码后

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

所以网址变为

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

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

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

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

并获取错误 - 资源不可用。

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

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

我已经创建了一个新页面,该页面使用了从主表格中提取页面的importrange(),并且该页面是公开的。

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

1 个答案:

答案 0 :(得分:2)

这次修改怎么样?

修改要点:

  • 使用查询时,请使用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云端硬盘上
      • 在电子表格文件
      • 右键单击 - >分享 - >高级 - >点击"更改" at" Private - 只有您可以访问"
      • 检查"在任何有链接"
      • 的人身上
      • 点击"保存"
      • 在"链接到共享",复制网址。
        • 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个网址是您的网址与我的回答之间的比较。我的答案的网址与您的网址相匹配。

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

当以上网址分开时,

  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
  7. 2。我的答案与您的网址匹配

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

    当以上网址分开时,

    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
    7. 注意:

      • 每个号码对应。
      • 请分享电子表格,如下所示。这与"发布到网络"在电子表格上。
        • 在Google云端硬盘上
          • 在电子表格文件
          • 右键单击 - >分享 - >高级 - >点击"更改" at" Private - 只有您可以访问"
          • 检查"在任何有链接"
          • 的人身上
          • 点击"保存"
          • 在"链接到共享",复制网址。