本文主要介绍如何对GSheet进行行和表迭代的优化,提高代码运行效率。
代码示例如下:
function optimizedRowAndSheetIterator() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var dataRange = sheet.getRange(1, 1, lastRow, lastColumn);
var dataValues = dataRange.getValues();
// Use while-loop for rows iteration
var row = 1;
while (row <= lastRow) {
var rowData = dataValues[row-1];
// Do something with rowData
row++;
}
// Use for-loop for sheets iteration
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i = 0; i < sheets.length; i++) {
var sheet = sheets[i];
var sheetName = sheet.getName();
// Do something with sheetName
}
}
首先,在处理表格数据时,考虑一次性获取所有需要的数据,而不是逐行或逐列获取。具体来说,使用getRange()
和getValues()
方法获取表格的全部数据,然后对数据进行操作。
其次,在行迭代中,使用while
循环而不是for
循环,这样可以避免在每次迭代中重复计算lastRow
。对于列迭代,建议使用for
循环。
最后,在表迭代中,使用for
循环遍历每个表格,然后对每个表格进行需要的操作。
通过优化迭代方法,可以提高GSheet脚本的执行效率,减少卡顿和运行时间。