我正在寻找一个脚本,我可以在Google表格电子表格中使用该脚本,以使其扫描包含多个电子表格的文件夹(每周添加1个),并从指定范围的单元格中检索数据到每个表格的新行中电子表格,但文件夹中的每张纸只有一次。
我找到了这个答案:Google Sheets: Import folder range into Master Sheet
是否可以将其修改为脚本,而不是单独检查而是以范围检查现有值?因为某些值不可避免地会是相同的,但是整个行都不太可能是相同的。
答案 0 :(得分:0)
也许这样的事情可能有用:
//var fObj={nameArray:[],rangeArray:[],folderId:}
function scanAllSpreadsheetsInAFolder(fObj) {
var fObj=fObj || {nameArray:['Sheet1','Sheet2'],rangeArray:['A1:F100','G1:G100']};
var ss=SpreadsheetApp.getActive();
var msh=ss.getSheetByName('master');
var folder=DriveApp.getFolderById(fObj.folderId);
var files=folder.getFilesByType(MimeType.GOOGLE_SHEETS);
while(files.hasNext()) {
var file=files.next();
var ss=SpreadsheetApp.openById(file.getId());
for(var i=0;i<fObj.nameArray.length;i++) {
var sh=ss.getSheetByName(fObj.nameArray[i]);
for(var j=0;j<fObj.rangeArray.length;j++) {
var rg=sh.getRange(fObj.rangeArray[j]);
var vA=rg.getValues();
msh.appendRow(['Spreadsheet Name','Sheet Name','Range(A1 Notation']);
msh.appendRow([file.getName(),fObj.nameArray[i],rangeArray[j]]);
msh.getRange(msh.getLastRow()+1,1,vA.length,vA[0].length).setValues(vA);
}
}
}
}
注意:我尚未对此进行测试。
fObj是这样的对象:{nameArray:[],rangeArray:[],folderId:'folder id'}
如果您希望以其他方式指定对象参数,请告诉我。