Google 电子表格脚本执行时间限制
Google spreadsheet script time limit of execution
我编写了 gs 脚本来清除工作表中所有单元格的数据。电子表格有很多表(大约 200 张),我得到了时间限制执行错误。也许有人知道如何解决这个问题。这是我的代码示例。
function cleanAllOld() {
var sheetsName = new Array();
var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
var sheets = destination.getSheets();
for (var k = 0; k < sheets.length; k++) {
sheetsName.push([sheets[k].getName()]);
for (var p = 0; p < sheetsName.length; p++) {
var sheet = destination.getSheetByName(sheetsName[p]);
if (sheet === null) {} else {
sheet.getDataRange().clearContent();
}
}
}
}
我认为问题在于获取数据范围。
尝试替换这个
sheet.getDataRange().clearContent();
通过这个:
sheet.clearContents();
我没有完全理解你的代码,但我认为他太复杂了。这是一个有效的示例:
function AllDelete() {
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
var sheets = ss.getSheets();
var i = 0;
for(i in sheets){
sheets[i].clearContents();
}
}
编辑:Max 很快而且是正确的,getDataRange() 方法使用了大量资源
我编写了 gs 脚本来清除工作表中所有单元格的数据。电子表格有很多表(大约 200 张),我得到了时间限制执行错误。也许有人知道如何解决这个问题。这是我的代码示例。
function cleanAllOld() {
var sheetsName = new Array();
var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
var sheets = destination.getSheets();
for (var k = 0; k < sheets.length; k++) {
sheetsName.push([sheets[k].getName()]);
for (var p = 0; p < sheetsName.length; p++) {
var sheet = destination.getSheetByName(sheetsName[p]);
if (sheet === null) {} else {
sheet.getDataRange().clearContent();
}
}
}
}
我认为问题在于获取数据范围。
尝试替换这个
sheet.getDataRange().clearContent();
通过这个:
sheet.clearContents();
我没有完全理解你的代码,但我认为他太复杂了。这是一个有效的示例:
function AllDelete() {
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
var sheets = ss.getSheets();
var i = 0;
for(i in sheets){
sheets[i].clearContents();
}
}
编辑:Max 很快而且是正确的,getDataRange() 方法使用了大量资源