Le script analyse une colonne des informations sur les commandes des clients, identifiant les codes d'état et combinant les noms et prénoms. Il insère également des lignes vides si nécessaire. Cependant, le temps de traitement devient excessif pour les grandes colonnes en raison des appels fréquents à Range.getValue() et Range.setValue().
Pour réduire le temps de traitement, il est recommandé de minimiser les appels aux services de Google, notamment Range.getValue() et Range.setValue(). Les optimisations suivantes peuvent être mises en œuvre :
Vous trouverez ci-dessous un script optimisé qui résout le problème du temps de traitement excessif :
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)); } } }
En suivant ces optimisations, le script réduira considérablement le temps de traitement en minimisant les appels coûteux à Range.getValue() et Range.setValue().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!