我編寫了一個腳本,每隔幾個小時就會向Google Apps電子表格中添加新的一行。這是我發(fā)現(xiàn)第一個空行的功能:function getFirstEmptyRow() { var spr = SpreadsheetApp.getActiveSpreadsheet(); var cell = spr.getRange('a1'); var ct = 0; while ( cell.offset(ct, 0).getValue() != "" ) { ct++; } return (ct);}它可以正常工作,但是當(dāng)?shù)竭_(dá)約100行時,它變得非常緩慢,甚至十秒鐘。我擔(dān)心到達(dá)數(shù)千行時,它會太慢,可能超時或更糟。有沒有更好的辦法?
3 回答

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊
Google Apps腳本博客上有一篇有關(guān)優(yōu)化電子表格操作的文章,其中討論了可以真正加快處理速度的批處理讀寫。我在具有100行的電子表格上嘗試了您的代碼,大約花了七秒鐘。通過使用Range.getValues(),批處理版本需要一秒鐘。
function getFirstEmptyRow() {
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange('A:A');
var values = column.getValues(); // get all data in one call
var ct = 0;
while ( values[ct][0] != "" ) {
ct++;
}
return (ct);
}
如果電子表格足夠大,則可能需要以100行或1000行的塊為單位獲取數(shù)據(jù),而不是獲取整個列。
- 3 回答
- 0 關(guān)注
- 842 瀏覽
添加回答
舉報
0/150
提交
取消