스크립트가 열을 스캔합니다. 고객 주문 정보, 주 코드 식별 및 이름과 성을 결합합니다. 또한 필요한 경우 빈 행을 삽입합니다. 단, Range.getValue(), Range.setValue()의 잦은 호출로 인해 대형 컬럼의 경우 처리 시간이 과도하게 소요됩니다.
처리 시간을 줄이려면 호출을 최소화하는 것이 좋습니다. Range.getValue() 및 Range.setValue()를 포함한 Google 서비스에 적용됩니다. 다음과 같은 최적화를 구현할 수 있습니다.
다음은 과도한 처리 시간 문제를 해결하는 최적화된 스크립트입니다.
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)); } } }
이러한 최적화를 따르면 스크립트는 비용이 많이 드는 Range.getValue() 호출을 최소화하여 처리 시간을 크게 줄입니다. Range.setValue().
위 내용은 빈번한 Range.getValue() 및 Range.setValue() 호출로 인해 발생하는 과도한 처리 시간을 줄이기 위해 Google Apps 스크립트를 최적화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!