1 google-sheets google-apps-script
所以我将应用程序脚本与具有 100k+ 行的工作表一起使用,所以我想知道哪些方法具有更好的性能,通常,我使用srcRange.getValues()
和dstRange.setValues(dstData)
使用应用程序脚本在工作表中移动数据,但是,我最近发现在尝试应用时它们的性能显着下降它们在大约 20K 单元的范围内,现在我只想知道我应该继续使用它们还是考虑使用类似的东西srcRange.copyTo(dstRange)
来代替,如果它的性能更好。
getValues()
最好setValues()
在将数据写入工作表之前修改或验证数据内容时使用。如果您的目标只是将数据从一张纸复制到另一张纸,那么最好使用的方法是Range.copyTo(dstRange)
因为它不需要脚本读取、处理和写入大尺寸数组。
getValues/setValues
这是我为vs所做的示例测试copyTo
:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh1 = ss.getSheetByName('Sheet1');
var sh2 = ss.getSheetByName('Sheet2');
sh1.getRange("A1:AL2967").copyTo(sh2.getRange("A1"));
}
function myFunction2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh1 = ss.getSheetByName('Sheet1');
var sh2 = ss.getSheetByName('Sheet3');
var data = sh1.getRange("A1:AL2967").getValues();
sh2.getRange(1,1,data.length, data[0].length).setValues(data);
}
Run Code Online (Sandbox Code Playgroud)
myFunction 运行时间:
myFunction2 运行时间:
归档时间: |
|
查看次数: |
713 次 |
最近记录: |