Skrip mengimbas lajur maklumat pesanan pelanggan, mengenal pasti kod negeri dan menggabungkan nama pertama dan nama keluarga. Ia juga memasukkan baris kosong jika perlu. Walau bagaimanapun, masa pemprosesan menjadi berlebihan untuk lajur besar disebabkan panggilan kerap ke Range.getValue() dan Range.setValue().
Untuk mengurangkan masa pemprosesan, adalah disyorkan untuk meminimumkan panggilan kepada perkhidmatan Google, termasuk Range.getValue() dan Range.setValue(). Pengoptimuman berikut boleh dilaksanakan:
Di bawah ialah skrip yang dioptimumkan yang menangani isu masa pemprosesan yang berlebihan:
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)); } } }
Dengan mengikuti pengoptimuman ini, skrip akan mengurangkan masa pemprosesan dengan ketara dengan meminimumkan panggilan mahal ke Range.getValue() dan Range.setValue().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Skrip Google Apps untuk Mengurangkan Masa Pemprosesan Berlebihan Disebabkan oleh Panggilan Range.getValue() dan Range.setValue() Kerap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!