【问题标题】:(Google sheets) Query and return multiple tables from url inject(Google sheet) 从 url injection 查询并返回多个表
【发布时间】:2017-07-01 10:15:21
【问题描述】:

我将来自 Google 电子表格的 JSON 数据用于 2 个移动应用程序(iOS 和 Android)。可以使用 HTML 或 XML 输出相同的信息,在这种情况下,我使用的是 HTML,因此每个人都可以理解显示的信息(来自电子表格)。唯一合乎逻辑的方法是不使用身份验证 (O'Auth) 是通过公共 URL 注入。 Information about what I’m talking can be found here。为了理解我在问什么,您必须实际单击链接并亲自查看。我不知道该怎么“称呼”我要问的一些事情,因为谷歌的文档很差,不是我自己的错。

在我的应用程序中,我有一个搜索功能,可以按照以下方式查询电子表格(使用 URL 请求),

https://docs.google.com/spreadsheets/d/1yyHaR2wihF8gLf40k1jrPfzTZ9uKWJKRmFSB519X8Bc/gviz/tq?tqx=out:html&tq=select+A,B,C,D,E+where+(B+contains"Cat")&gid=0

我选择我的列(A、B、C、D 和 E)并询问(Google)只返回 B 列包含单词 cat 的行。我再次强调,这是通过 URL 地址完成的(inject 是正确的术语)。我几乎不能使用通常在 ArrayFormula 或 ImportRange 等电子表格中工作的任何函数/公式。事实上,我只能访问 10 个语言条款(阅读之前的链接)。我对电子表格和数据库有相当的了解,并且从它们获取信息的 URL 方法是相似的,它们绝不是一回事。

现在,我想在 URL 中指出这部分

tq?tqx=out:html&tq=select+A,B,C,D,E+where+(B+contains"Cat")&gid=0

输出类型,这里是 HTML

tqx=out:html

查询开始

&tq=

选择 A-E 列

select+A,B,C,D,E

返回关于猫的具体信息

where+(B+contains"Cat")

这可能是我的问题中最重要的部分。这用于指定正在查询的表(Tab)。

&gid=0

如果 gid 从 gid=0 更改为 gid=181437435,则返回的数据来自电子表格的第二个表。不必发出 2 个请求来搜索两个表,有没有办法在一个请求中同时执行这两个请求? (就像将 2 结合起来)

有一个 AND 子句,我在整个 url 上都试过了

select+A,B,C,D,E+where+(B+contains%20"Cat")&gid=181437435+AND+select+A,B,C,D,E+where+(B+contains%20"Cat")&gid=0

我什至将gid 翻转并放在其他地方,但它似乎只通过url 中的最后一个(gid),无论做什么都只返回1 个表。顺便说一句,分组是允许的。如果这不能解决我的问题,那么让我知道你在哪里迷路了。此外,我会发布更多 URL 以便于访问,但我有点喜欢这个 2 URL 最大程序。

【问题讨论】:

    标签: google-sheets google-spreadsheet-api


    【解决方案1】:

    如果我理解您的要求,确实是这样,例如:

    =ArrayFormula(QUERY({Sheet1!A1:C4;Sheet2!B1:D4},"select * order by Col1 desc"))
    

    ; 将一个数组堆叠在另一个数组之上(, 表示并排)。

    我的困惑在于“URL 查询语言”,因为这里称为 Google 查询语言(甚至还有 tag,尽管 IMO 几乎所有这些 Q 都属于 Web Applications - 包括这个,据我了解!)不仅限于与 URL 一起使用。

    在上面的示例中,工作表引用可能会替换为数据导入函数。

    【讨论】:

    • 嗯,我已经更新了我的问题,但也许你是对的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2023-03-11
    • 2018-09-14
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多