Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 仅从当前和未来日期筛选数据_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 仅从当前和未来日期筛选数据

Google apps script 仅从当前和未来日期筛选数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在从.CSV文件导入数据 function myFunction() { var url = "https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv"; var data = UrlFetchApp.fetch(url).getContentText(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getAct

我正在从.CSV文件导入数据

function myFunction() {
  var url = "https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv";
  var data = UrlFetchApp.fetch(url).getContentText();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var resource = {requests: [{pasteData: {
    data: data,
    coordinate: {sheetId: sheet.getSheetId()},
    delimiter: ","
  }}]};
  Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
我对过去日期的数据不感兴趣,我希望通过脚本进行过滤,使工作表更小,也使我的工作更轻松。我无法直接从数据源进行过滤,当我尝试在另一页中通过公式进行过滤时,过滤器不起作用

=FILTER('Page1'!A2:A,'Page1'!A2:A>=TEXT(now(),"dd/mm/yyyy"))
我想知道我有什么选择可以过滤这些数据,因为我每天都会更新,这个过滤器对我要做的研究非常重要

如果在导入时已有任何方法进行筛选,那就更好了,但如果我需要在另一个电子表格页面上使用函数,也没问题。

  • 您希望检索CSV数据并将其放入电子表格
  • 放置CSV数据时,您希望删除今天之前的数据。
    • 日期值位于列“A”中
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,这次修改怎么样?请把这看作是几个答案中的一个

在此修改中,使用以下流程

  • 使用
    UrlFetchApp.fetch()
    检索CSV数据
  • 使用
    Utilities.parseCsv()
    解析CSV数据
  • 使用
    filter()
    从解析数据中删除今天之前的值
  • 使用
    setValues()
    将值放入电子表格
  • 修改脚本:
    • 在该脚本中,这些值被放入活动工作表中
    参考资料:

    如果我误解了你的问题,而这不是你想要的结果,我道歉。

    早上好@Tanaike!只是一个没用的细节。。。未来日期数据完全导入,但当前日期数据未导入。@Frederico Mattos感谢您的回复。在我的环境中,我可以确认今天之后(包括今天)可以检索数据。例如,对于我修改过的脚本,如何修改from
    var today=d.getTime()
    to
    var today=d.getTime()-1000和/或
    var today=d.getTime()-(12*3600*1000)
    function myFunction() {
      var url = "https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv";
      var data = UrlFetchApp.fetch(url).getContentText();
      var csv = Utilities.parseCsv(data);
      var d = new Date();
      d.setHours(0, 0, 0, 0);
      var today = d.getTime();
      var values = csv.filter(function(e, i) {
        var temp = new Date(e[0]);
        temp.setHours(0, 0, 0, 0);
        return i > 0 && temp.getTime() >= today;
      });
      values.unshift(csv[0]);
      var sheet = SpreadsheetApp.getActiveSheet();
      sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
    }