情況1:在A1~A100填入1~100。
無使用陣列方法
function SetCellWithoutArray() { start_time = new Date().getTime(); var ss = SpreadsheetApp.getActiveSpreadsheet(); for(var i = 0 ; i < 100; i++) ss.getSheets()[0].getRange(i+1, 1).setValue(i+1); end_time = new Date().getTime(); Logger.log((end_time - start_time) / 1000 + "sec"); }執行時間:
使用陣列方法
function SetCellWithArray() { start_time = new Date().getTime(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var tmp = [100]; for(var i = 0 ; i < 100; i++) { tmp[i] = [1]; tmp[i][0] = i+1; } ss.getSheets()[0].getRange(1, 1, 100, 1).setValues(tmp); end_time = new Date().getTime(); Logger.log((end_time - start_time) / 1000 + "sec"); }執行時間:
情況2:將A1~A100的值乘2放到B1~B100中。
無使用陣列方法
function SetCellWithoutArray2() { start_time = new Date().getTime(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var values = ss.getSheets()[0].getRange(1, 1, 100, 1).getValues(); for(var i in values) ss.getSheets()[0].getRange(parseInt(parseInt(i)+1), 2).setValue(values[i] * 2); end_time = new Date().getTime(); Logger.log((end_time - start_time) / 1000 + "sec"); }執行時間:
使用陣列方法
function SetCellWithArray2() { start_time = new Date().getTime(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var values = ss.getSheets()[0].getRange(1, 1, 100, 1).getValues(); var len = values.length; var tmp = [len]; for(var i in values) { tmp[parseInt(i)] = [1]; tmp[parseInt(i)][0] = values[i] * 2; } ss.getSheets()[0].getRange(1, 2, len, 1).setValues(tmp); end_time = new Date().getTime(); Logger.log((end_time - start_time) / 1000 + "sec"); }執行時間:
以上的結果各位讀者看懂得了嗎?主要是加速Google Sheet儲存格的處理速度。
參考資料: