【发布时间】:2021-07-29 11:07:37
【问题描述】:
根据对上一个问题的回答,似乎无法从使用 javascript 在用户滚动时自动展开的网站导入 HTML 图表的所有行。
这个问题的第一个版本的答案是使用 IMPORTHTML 数组作为 QUERY 函数的范围。由于这可以返回结果,因此我调整了 url,以便表格按预期填充更多;这意味着拥有更多的网址。我决定在参考文献上使用 ARRAYFORMULA 构建网址!标签(下面的链接)。
然后我单独更新了 QUERY 范围数组的行以生成以下公式
=query(
{importhtml(ref!B5, ref!B1, ref!B2);
importhtml(ref!B6, ref!B1, ref!B2);
importhtml(ref!B7, ref!B1, ref!B2);
importhtml(ref!B8, ref!B1, ref!B2);
importhtml(ref!B9, ref!B1, ref!B2);
importhtml(ref!B10, ref!B1, ref!B2);
importhtml(ref!B11, ref!B1, ref!B2);
importhtml(ref!B12, ref!B1, ref!B2);
importhtml(ref!B13, ref!B1, ref!B2);
importhtml(ref!B14, ref!B1, ref!B2);
importhtml(ref!B15, ref!B1, ref!B2);
importhtml(ref!B16, ref!B1, ref!B2)
},
"where Col1 is not null", 1)
更新问题: 构建 QUERY 范围数组是否有更优雅的解决方案?
在 ref 中创建的一些 url!选项卡是空的,但可以开始使用。希望可能有一种方法来构建该功能,以便它具有一定程度的“面向未来”的潜在扩展。虽然单元格中的函数是理想的解决方案,但如果这需要 Apps 脚本(添加标签),我愿意接受可能实现最终目标的策略。
https://docs.google.com/spreadsheets/d/14jHGRyHKf866jrZiIfX2-GX6hZ2SE6vi_DezckpXaRs/edit#gid=7490361
非常感谢任何有关如何成功(并且可能优雅地)做到这一点的指导。
下面包含此问题以前版本的文本。
作为一种解决方法,~~我从图表的每个页面中提取了单独的 url,并将设置设置为一次显示的最大行数(即 100 行)。我已将所有 url 放在一张表中,并希望使用单个公式填充单个 IMPORTHTML 结果。以下公式不会产生预期的结果。~~
=IMPORTHTML({D3:D6},A3,B3)
=ARRAYFORMULA(IMPORTHTML({D3:D9},A3,B3))
这两个选项都会导致仅部分返回第一个 url。
={{IMPORTHTML(D3,A3,B3)};{IMPORTHTML(D4,A3,B3)};{IMPORTHTML(D5,A3,B3)};{IMPORTHTML(D6,A3,B3)}}
此选项会导致第一个 URL 的完整返回(带有一些奇怪的填充行)以及第二个 URL 的部分返回。这是当前在 arrayImport 选项卡上的选项。
【问题讨论】:
标签: google-apps-script google-sheets google-sheets-formula