Google apps script 仅从当前和未来日期筛选数据
我正在从.CSV文件导入数据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
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()
tovar 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);
}