仅从当前日期和将来日期导入数据

时间:2019-09-13 03:13:10

标签: google-apps-script google-sheets

我正在尝试导入第五十八数据,但是当尝试从CSV文件导入完整链接时,它超出了Google允许的限制。

所以...我想知道如何过滤,以便仅导入今天的游戏和将来的日期。从过去的游戏来看,对我来说没有任何价值。

=IMPORTDATA("https://projects.fivethirtyeight.com/soccer-api/club/spi_matches.csv")

IMPORTDATA无效,因为它超出了电子表格的限制,因为它保存了自2016年以来的过去游戏数据,因此数据列表太大。

我只需要当前日期和将来的日期游戏

1 个答案:

答案 0 :(得分:1)

这个答案怎么样?

似乎CSV数据的大小为4,183,375字节,以及32,101行22列。那么如何使用Google Apps脚本放置数据呢?遗憾的是,由于CSV尺寸较大,因此无法使用自定义功能放置它。

the benchmark for importing CSV data to Spreadsheet开始,当使用Sheets API时,可以通过使用Utilities.parseCsv()setValues()的方法来降低处理成本。因此,在此答案中,Sheets API用于将CSV值放入Spreadsheet。请认为这只是几个答案之一。

示例脚本1:

使用以下脚本之前,please enable Sheets API at Advanced Google services

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());
}
  • 在此脚本中,CSV数据来自活动工作表的单元格“ A1”。

示例脚本2:

如果您不能使用Sheets API,也可以使用以下脚本。

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 sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
}

参考文献:

如果这不是您想要的方向,我深表歉意。