我正在尝试将以下数据添加到 Google 表格中,但使用 IMPORTXML 来完成此操作看起来很棘手。知道该怎么做吗?
最佳答案
- 您想要从 URL 的 HTML 数据中检索表格。
- 来自
我正在尝试将以下数据放入 Google 表格
,我是这样想的。
- 来自
如果我的理解是正确的,这个答案怎么样?
问题和解决方法:
不幸的是,HTML 的文件大小似乎很大。因此,当 =IMPORTXML("https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll","//title") 时使用
时,会出现Resource at url content超过最大大小。
错误。当我从 URL 检索 HTML 数据时,HTML 数据的大小约为 9 MB。认为错误的原因就是由于此。那么作为解决方法之一,使用 Google Apps 脚本怎么样?在此解决方法中,使用以下流程。
- 使用
UrlFetchApp
检索 HTML 数据 - 使用 GAS 库
Parser
解析 HTML 数据。 - 使用 Sheets API 的
PasteDataRequest
将解析后的数据放入电子表格上的事件工作表。
用法:
准备工作:
请安装
解析器
。关于库的安装,可以看here .- 该库的项目 key 为
M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
。
- 该库的项目 key 为
示例脚本:
请将以下脚本复制并粘贴到电子表格的容器绑定(bind)脚本的脚本编辑器中。完成上述设置后,请运行myFunction()
函数。运行脚本时,HTML 表格将被放入电子表格上的事件工作表中。
function myFunction() {
// Retrieve HTML data from URL.
var url = "https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll";
var html = UrlFetchApp.fetch(url).getContentText();
// Parse HTML data.
var table = "<table" + Parser.data(html).from("<table class=\"t-chart\"").to("</table>").build() + "</table>";
// Put the values to the Spreadsheet.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var resource = {requests: [{pasteData: {html: true, data: table, coordinate: {sheetId: sheet.getSheetId()}}}]};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
引用文献:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
更新于 2021 年 4 月 23 日:
适用于 Google Apps 脚本的新 IDE 终于于 2020 年 12 月 7 日发布。Ref这样,在现阶段,为了安装Google Apps Script库,需要使用Google Apps Script项目的脚本ID。
在本例中,当 Parser 的 Google Apps 脚本库已安装,遗憾的是,无法使用此 ID M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
。
所以当您使用新的IDE时,请使用以下脚本ID。
1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw
此脚本 ID 是 M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
的 Google Apps 脚本项目的 ID。这样就可以将Parser库安装到新的IDE中了。
关于安装库的方法,可以参见the official document .
引用:
关于google-apps-script - 谷歌表格: How to import the following data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57838223/