Ich habe eine Excel-Arbeitsmappe (Spreadsheet) in meinem Laufwerk Konto mit mehreren Blättern, in einem dieser Blätter habe ich 5000 Datensätze.Sehr langsam, um JSON mit Apps zu erhalten. Skript-Tabelle
Ich benutze dieses Skript (Apps Script), um die Datensätze im JSON-Format von einem Android-Gerät zu erhalten: Das Skript funktioniert, wenn die Datensätze sind wenige, aber mit einer Menge von Aufzeichnungen nie zu Ende.
function traerRubros() {
var libro = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1-Vv3tsn7QYDa7rOsha4ebj9vJyjegG7j-xpDMbOOAuY/edit#gid=825509855');
var sheet = libro.getSheetByName('Articulos');
var json1 = convertSheet2JsonText(sheet);
return JSON.stringify(json1);
}
function convertSheet2JsonText(sheet) {
// first line(title)
var colStartIndex = 1;
var rowNum = 1;
var firstRange = sheet.getRange(1, 1, 1, sheet.getLastColumn());
var firstRowValues = firstRange.getValues();
var titleColumns = firstRowValues[0];
// after the second line(data)
var lastRow = sheet.getLastRow();
var rowValues = [];
for(var rowIndex=2; rowIndex<=lastRow; rowIndex++) {
var colStartIndex = 1;
var rowNum = 1;
var range = sheet.getRange(rowIndex, colStartIndex, rowNum, sheet.getLastColumn());
var values = range.getValues();
rowValues.push(values[0]);
}
// create json
var jsonArray = [];
for(var i=0; i<rowValues.length; i++) {
var line = rowValues[i];
var json = new Object();
for(var j=0; j<titleColumns.length; j++) {
json[titleColumns[j]] = line[j];
}
jsonArray.push(json);
}
return jsonArray;
}
Warum dauert es so lange? Gibt es eine Optimierung in diesem Skript, die Sie tun können, um es schneller zu machen? Welche Alternative kann ich empfehlen, um schnell Datensätze zu erhalten?
danke, ich benutze jetzt einen Code an csv übergeben und arbeitet schnell – seba123neo