Я могу получить данные, используя два разных URL, в зависимости от того, хочу ли я сохранить файл в формате csv или json.
- CSV edition
В случае csv url я делаю следующее:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("data")
get_url="https://opendata.rdw.nl/resource/m9d7-ebf2.csv?
datum_tenaamstelling=20200404%20&$limit=20000";
var result_data = UrlFetchApp.fetch(get_url);
var raw_data = result_data.getContentText()
Logger.log(raw_data);
В результате получается строка, которую я не могу сохранить в файле электронной таблицы без использования al oop.
JSON edition Используя json url, я делаю следующее:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("data")
get_url="https://opendata.rdw.nl/resource/m9d7-ebf2.json?
datum_tenaamstelling=20200404%20&$limit=20000";
var result_data = UrlFetchApp.fetch(get_url, options);
var raw_data = result_data.getContentText()
var json_list = JSON.parse(raw_data)
for(var i = 0; i < json_list.length; i++) {
var obj = json_list[i];
Logger.log(obj.merk);
sheet.appendRow([obj.kenteken,
obj.merk,
obj.catalogusprijs,
obj.datum_eerste_afgifte_nederland,
obj.datum_eerste_toelating,
obj.datum_tenaamstelling
]);
}
Что снова я использую итерация, которая не практична, если я хочу сохранить 20000 строк в таблице. Через некоторое время он останавливается и возвращает ошибку времени выполнения.
Можно ли каким-либо образом напрямую скопировать данные в файл электронной таблицы? Например, чтобы сделать что-то подобное:
sheet.getRange(1, 1,raw_data.length,raw_data[0].length).setValues(raw_data);
Большое спасибо, и если мой вопрос неясен, дайте мне знать, и я проясню это для вас.