Heim >Web-Frontend >js-Tutorial >Wie kann ich Google Apps-Skript optimieren, um übermäßige Verarbeitungszeit zu reduzieren, die durch häufige Aufrufe von Range.getValue() und Range.setValue() verursacht wird?
Das Skript scannt eine Spalte von Kundenbestellinformationen, Identifizierung von Staatscodes und Kombination von Vor- und Nachnamen. Bei Bedarf werden auch leere Zeilen eingefügt. Allerdings wird die Verarbeitungszeit bei großen Spalten aufgrund häufiger Aufrufe von Range.getValue() und Range.setValue() zu lang.
Um die Verarbeitungszeit zu verkürzen, wird empfohlen, Aufrufe zu minimieren zu den Diensten von Google, einschließlich Range.getValue() und Range.setValue(). Folgende Optimierungen können umgesetzt werden:
Unten finden Sie ein optimiertes Skript, das das Problem der übermäßigen Verarbeitungszeit behebt:
function format() { const SS = SpreadsheetApp.getActiveSpreadsheet(); const SHEET = SS.getActiveSheet(); const LAST_ROW = SHEET.getRange('A:A').getLastRow(); let row, range1, cellValue, offset1, offset2, offset3; // Loop through all cells in column A for (row = 0; row < LAST_ROW; row++) { range1 = SHEET.getRange(row + 1, 1); // If cell substring is a number, skip it as substring cannot process numbers cellValue = range1.getValue(); if (typeof cellValue === 'number') continue; // Check for the state code prefix "-" const DASH = cellValue.substring(0, 1); // Get neighboring cells offset1 = range1.offset(1, 0).getValue(); offset2 = range1.offset(2, 0).getValue(); offset3 = range1.offset(3, 0).getValue(); // Handle state code "-" if (DASH === '-') { // Merge cells 1 and 2 and write "Order complete" in cell 2 range1.offset(1, 0).setValue(offset1 + ' ' + offset2); range1.offset(2, 0).setValue('Order complete'); } // Insert cell if offset 3 is not blank if (DASH === '-' && offset3 !== '') { // Select cells from 3 rows down SHEET.getRange(row + 1, 1, LAST_ROW) .offset(3, 0) .moveTo(range1.offset(4, 0)); } } }
Durch die Befolgung dieser Optimierungen wird das Skript die Verarbeitungszeit erheblich verkürzen, indem teure Aufrufe von Range.getValue() und minimiert werden Range.setValue().
Das obige ist der detaillierte Inhalt vonWie kann ich Google Apps-Skript optimieren, um übermäßige Verarbeitungszeit zu reduzieren, die durch häufige Aufrufe von Range.getValue() und Range.setValue() verursacht wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!