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 次 |
| 最近记录: |