Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script GoogleSheets:如何导入以下数据?_Google Apps Script_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google apps script GoogleSheets:如何导入以下数据?

Google apps script GoogleSheets:如何导入以下数据?,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,数据源 我正试图将以下数据放到Google工作表上,但使用IMPORTXML看起来很棘手。你知道怎么做吗? 您希望从URL的HTML数据中检索表。 在中,我试图将以下数据放到谷歌工作表中,我是这样想的 如果我的理解是正确的,那么这个答案呢 问题和解决方法: 不幸的是,HTML的文件大小似乎很大。所以当=IMPORTXML(“https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/Te

数据源

我正试图将以下数据放到Google工作表上,但使用IMPORTXML看起来很棘手。你知道怎么做吗?

  • 您希望从URL的HTML数据中检索表。
    • 中,我试图将以下数据放到谷歌工作表中,我是这样想的
如果我的理解是正确的,那么这个答案呢

问题和解决方法: 不幸的是,HTML的文件大小似乎很大。所以当
=IMPORTXML(“https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll“,“//title”)
被使用,url内容处的
资源错误超过最大大小。
发生。当我从URL检索HTML数据时,HTML数据的大小约为9MB。据认为,错误的原因是由于这一点。作为一种解决方法,使用谷歌应用程序脚本怎么样?在此解决方案中,使用以下流程

  • 使用
    UrlFetchApp
  • 使用气体库
    Parser
    解析HTML数据
  • 使用Sheets API的
    PasteDataRequest
    将解析后的数据放入电子表格上的活动工作表
  • 用法: 准备:
  • 请安装
    解析器
    。关于库的安装,请访问

    • 该库的项目密钥是
      M1lugvAXKKtUxn\u vdAG9JZleS6DrsjUUV
  • 示例脚本: 请将以下脚本复制并粘贴到电子表格容器绑定脚本的脚本编辑器中。完成上述设置后,请运行
    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());
    }
    
    此脚本ID是
    M1lugvAXKKtUxn\u vdAG9JZleS6DrsjUUV
    的谷歌应用程序脚本项目的ID。这样,就可以将解析器库安装到新的IDE中

    关于安装库的方法,您可以看到

    参考:

    我无法添加解析器库。@谢谢您的评论。关于
    我无法添加解析器库。
    ,我认为这个问题的原因可能是由于新的IDE。所以,我更新了我的答案。你能确认一下吗?如果这不是您期望的方向,我很抱歉。Tanaike,感谢您提供了新的脚本ID。在我看到您的回复之前,我通过从您提供的链接添加Parser.gs使解析器工作(尽管托管在那里的代码需要
    newparser(html)
    而不是
    Parser.data(html)
    )。
    1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw