Ich arbeite an einer GAS-Webanwendung, die eine Tabelle liest (sie ist nicht mit der Tabelle verknüpft und kann nicht aus anderen Gründen verwendet werden).Beschleunigung der Google Web App-Tabellenkalkulation loading
Ich lade in dem Blatt oder einen Bereich davon, wie folgt aus:
var ss = SpreadsheetApp.openById(ssId);
dataSheet = ss.getSheetByName('Projects');
var data = dataSheet.getRange('A1:BL').getValues();
Ich habe eine Menge von Tests durchgeführt, und mit meinem schwach besiedelten A1: BL5500 Tabelle (mit einer angemessenen Anzahl von Zellen gefüllt mit ein paar Dutzend Zeichen Text), dauert die Ladezeit etwa 6 Sekunden. Ich habe named Bereiche und viele Dinge ausprobiert, aber ich kann es nicht schneller als das bekommen.
Was ich wirklich brauche, ist 1 Spalte des Blattes, dann suche ich nach der Zeile, die ich brauche, und dann brauche ich diese Zeile. Aber das Laden der 1 Spalte dauert fast die gleiche Zeit wie das Laden der gesamten Sache. Gibt es einen besseren Weg, dies zu tun? Die Verzögerung ist problematisch.
Hier ist das Timing Zusammenbruch:
SpreadsheetApp.openById(ssid) [0.174 seconds]
Spreadsheet.getSheetByName([Projects]) [0 seconds]
Sheet.getRange([A1:BL]) [0.387 seconds]
Range.getValues() [6.483 seconds]
Zum Vergleich hier ist das Laden nur eine Spalte:
SpreadsheetApp.openById(ssid) [0.164 seconds]
Spreadsheet.getSheetByName([Projects]) [0 seconds]
Sheet.getRange([A1:A]) [0.336 seconds]
Range.getValues() [5.887 seconds]
Dies sind nur einzelne Läufe sind die Zeitunterschiede nicht signifikant (sie variieren).
Ich habe eine Problemumgehung: Ich habe ein neues Blatt erstellt, von dem eine Spalte der Spalte entspricht, nach der ich suchen muss. Ich lade das. Wenn ich meine Suche abgeschlossen habe, lade ich nur die relevante Zeile aus dem ganzen Blatt. Es dauert die gesamte Zeit von etwa 8 Sekunden bis etwa 2, was akzeptabel sein könnte. – KeithKeithBoBeith
Bitte fügen Sie diese Lösung als Antwort hinzu. –
Ich fand auch, dass das Parsen der veröffentlichten CSV von SS viel schneller sein. –