Gscript获取大型CSV



这可能很容易,但我一直在努力。我正在获取一个CSV并将其写入谷歌表单。CSV每天都会更新,最近太大了,我无法继续使用ImportData。下面来自Max Mahkrov的代码几乎可以工作,但数据仍然太大,我无法写在表中。我如何写一个选择的专栏(比如1-8(?

对我来说,更好的方法是根据日期过滤行,但我发现有一个ArrayLib库曾经具有这种功能,现在已经不复存在了。

javascript:

function getBigCsv() {
var url = 'https:URL.csv';
var csv = UrlFetchApp.fetch(url);
var data = Utilities.parseCsv(csv);
SpreadsheetApp.getActive().getSheetByName('Sheet1').getRange(2, 1, data.length, data[0].length).setValues(data);
}

Utilities.parseCsv返回一个可以过滤的2D数组,例如使用map((

样品:

function getBigCsv() {
var url = 'https:URL.csv';
var csv = UrlFetchApp.fetch(url);
var data = Utilities.parseCsv(csv);
data = data.map(function(row){return [row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7]]});
SpreadsheetApp.getActive().getSheetByName('Sheet1').getRange(2, 1, data.length, data[0].length).setValues(data);
}

将数据限制为Date((。valueOf((大于dtv。我可能会使用自定义对话框来选择您希望显示的确切天数。但我不想写那个,所以我就交给你了。

function getSmallerCsv() {
const dt = new Date();
const dtv = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
var url = 'https:URL.csv';
var csv = UrlFetchApp.fetch(url);
var data = Utilities.parseCsv(csv);
data = data.map(function(row){return [row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7]]}).filter(r => new Date(r[?]).valueOf() > dtv);
SpreadsheetApp.getActive().getSheetByName('Sheet1').getRange(2, 1, data.length, data[0].length).setValues(data);
}

相关内容

  • 没有找到相关文章

最新更新