【问题标题】:Google Sheets: How to import the following data?谷歌表格:如何导入以下数据?
【发布时间】:2019-09-07 23:56:56
【问题描述】:

数据源
https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll

我正在尝试将以下数据添加到 Google 表格中,但使用 IMPORTXML 执行此操作看起来很棘手。知道怎么做吗?

【问题讨论】:

    标签: google-apps-script google-sheets google-sheets-formula


    【解决方案1】:
    • 您想从 URL 的 HTML 数据中检索表格。
      • 来自I am trying to get the following data onto a Google Sheet,我是这样想的。

    如果我的理解是正确的,那么这个答案呢?

    问题和解决方法:

    不幸的是,HTML 的文件似乎很大。所以在使用=IMPORTXML("https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll","//title")时,会出现Resource at url contents exceeded maximum size.的错误。当我从 URL 中检索 HTML 数据时,HTML 数据的大小约为 9 MB。认为错误的原因是由于这一点。因此,作为一种解决方法,使用 Google Apps 脚本怎么样?在此解决方法中,使用了以下流程。

    1. 使用 UrlFetchApp 检索 HTML 数据
    2. 使用 GAS 库 Parser 解析 HTML 数据。
    3. 使用 Sheets API 的 PasteDataRequest 将解析后的数据放到电子表格上的活动工作表中。

    用法:

    准备工作:

    1. 请安装Parser。关于库的安装,可以在here看到。

      • 库的项目密钥是M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
    2. Please enable Sheets API at Advanced Google services.

    示例脚本:

    请将以下脚本复制并粘贴到电子表格的容器绑定脚本的脚本编辑器中。以上设置完成后,请运行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 Script 的新 IDE 终于在 2020 年 12 月 7 日发布。Ref 至此,在现阶段,为了安装 Google Apps Script 库,需要使用 Google Apps 的脚本 ID脚本项目。

    在这种情况下,当安装Parser 的Google Apps 脚本库时,很遗憾,无法使用此ID M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV

    所以当你使用新的IDE时,请使用下面的脚本ID。

    1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw
    

    此脚本 ID 是 M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV 的 Google Apps 脚本项目的 ID。这样,Parser 的库就可以安装到新的 IDE 中了。

    关于安装库的方法,可以看the official document

    参考:

    【讨论】:

    • 我无法添加解析器库。
    • @thdoan 感谢您的评论。关于I was not able to add the Parser library.,我认为这个问题的原因可能是由于新的IDE。所以,我更新了我的答案。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
    • 田池,感谢您提供新的脚本 ID。在我看到你的回复之前,我可以通过从你提供的链接中添加 Parser.gs 来让 Parser 工作(尽管那里托管的代码需要 new Parser(html) 而不是 Parser.data(html))。
    猜你喜欢
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多