Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从不同工作表获取数据的Appscript功能速度较慢,如何优化它?_Arrays_Google Apps Script_Google Sheets - Fatal编程技术网

Arrays 从不同工作表获取数据的Appscript功能速度较慢,如何优化它?

Arrays 从不同工作表获取数据的Appscript功能速度较慢,如何优化它?,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,我是JS和编程新手。 我正在运行一个包含大量表格的项目电子表格,并试图在一个主表格中收集信息。 问题是,循环遍历100个表并获取值会使函数速度太慢,运行时需要大约40秒 我查看了日志,发现getValue要求很高,每次迭代需要0.2秒。 我读过有关批处理函数的内容,但知道如何做 function onEdit(e) { //declaring variables var sheetnames = new Array(); var budgetSums = new Array(); var pr

我是JS和编程新手。 我正在运行一个包含大量表格的项目电子表格,并试图在一个主表格中收集信息。 问题是,循环遍历100个表并获取值会使函数速度太慢,运行时需要大约40秒

我查看了日志,发现getValue要求很高,每次迭代需要0.2秒。 我读过有关批处理函数的内容,但知道如何做

function onEdit(e) {

//declaring variables
var sheetnames = new Array();
var budgetSums = new Array();
var projectState = new Array();
var workingHours = new Array();
var projectLink = new Array();
var sheetLink = new Array();

var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var masterSheet = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mastersheet");

//get information and cell values from diffentent sheets
for (var i=0 ; i<sheets.length ; i++) {
sheetnames.push( [ sheets[i].getName() ] ); 
budgetSums.push( [ sheets[i].getRange('F1').getValue() ] );
projectState.push( [ sheets[i].getRange('K1').getValue() ] );
workingHours.push( [ sheets[i].getRange('K2').getValue() ] );
sheetLink.push( [ sheets[i].getSheetId() ] )
}


//set cell values in the master sheet
for (var i=0; i<sheetnames.length; i++){
masterSheet.getRange(i +1, 1).setValue(sheetnames[i]); 
masterSheet.getRange(i +1, 2).setValue(budgetSums[i]); 
masterSheet.getRange(i +1, 3).setValue(projectState[i]); 
masterSheet.getRange(i +1, 4).setValue(workingHours[i]); 

}
for (var i=0; i<sheetnames.length; i++){
masterSheet.getRange(i +1, 5).setValue('=HYPERLINK("#gid=' + sheetLink[i] 
+ '";"' + sheetnames[i] + '")' ); 
}
}
函数onEdit(e){
//声明变量
var sheetnames=新数组();
var budgetSums=新数组();
var projectState=新数组();
var workingHours=新数组();
var projectLink=新数组();
var sheetLink=新数组();
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var母版=
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Mastersheet”);
//从不同的内容表中获取信息和单元格值

对于(var i=0;i我相信您可以选择以下两个部分:

for (var i=0 ; i<sheets.length ; i++) {
  sheetnames.push( [ sheets[i].getName() ] ); 
  budgetSums.push( [ sheets[i].getRange('F1').getValue() ] );
  projectState.push( [ sheets[i].getRange('K1').getValue() ] );
  workingHours.push( [ sheets[i].getRange('K2').getValue() ] );
  sheetLink.push( [ sheets[i].getSheetId() ] )
}


//set cell values in the master sheet
for (var i=0; i<sheetnames.length; i++){
  masterSheet.getRange(i +1, 1).setValue(sheetnames[i]); 
  masterSheet.getRange(i +1, 2).setValue(budgetSums[i]); 
  masterSheet.getRange(i +1, 3).setValue(projectState[i]); 
  masterSheet.getRange(i +1, 4).setValue(workingHours[i]); 

}

for(var i=0;iby'optimization'it)您希望获得什么?
for (var i=0 ; i<sheets.length ; i++) { 
  masterSheet.getRange(i+1,1,1,4).setValues([[sheets[i].getName(),sheets[i].getRange('F1').getValue(),sheets[i].getRange('K1').getValue(),getRange('K2').getValue()]]);
  sheetLink.push( [sheets[i].getSheetId()])
}
for (var i=0 ; i<sheets.length ; i++) { 
  masterSheet.getRange(i+1,1,1,5).setValues([[sheets[i].getName(),sheets[i].getRange('F1').getValue(),sheets[i].getRange('K1').getValue(),getRange('K2').getValue(), '=HYPERLINK("#gid=' + sheets[i].getSheetId() + '";"' + sheetnames[i] + '")']]);
}