将文件夹中所有图纸的特定范围中的数据合并到主控图纸中



我有没有试图从文件夹(getfolderbyid("jkhkkkkk"(中的每张表中获取特定范围(单行即AB2:AB10(的脚本,以复制到特定的主表getsheetbyID("lklklkjllj"(

这就是我所拥有的,但它在源数据表的所有5000行中循环,所以速度非常慢///////////////////////////////////////////函数getGaccountsDatafrom(({

var folder = DriveApp.getFolderById("folderID");
var filesIterator = folder.getFiles();

*var file;
var fileType;
var ssID;
var combinedData = [];
var data;
while(filesIterator.hasNext()){
file = filesIterator.next();
fileType = file.getMimeType();  
if(fileType ==="application/vnd.google-apps.spreadsheet"){
ssID = file.getId();
data = getDataFromSpreadsheet(ssID);
combinedData = combinedData.concat(data);
} //if end here
}// while ends here
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DATA");
ws.getRange("A2:AQ").clearContent();
ws.getRange(2, 1, combinedData.length, combinedData[0].length).setValues(combinedData);
}
function getDataFromSpreadsheet(ssID){
var ss=SpreadsheetApp.openById(ssID);
var ws = ss.getSheetByName("DATA");
var data = ws.getRange("CG3:DW3"+ ws.getLastRow()).getValues();
return data;
}////////////////////////////////////////////////////

嗯。。。代码不是"0";循环通过源数据表的全部5000行;但是迭代文件夹中的文件并分别从每个文件获取数据。这就是它运行缓慢的原因,我不知道它是否可以更快。

由于多余的3getDataFromSpreadsheet()函数获取的数据太多,因此结果之间将有空白行。这里有一个快速解决方案:

const data = ws.getRange('CG3:DW' + ws.getLastRow()).getValues();

最新更新