情況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儲存格的處理速度。
參考資料:



