我创建了一个代码,将不同的g表文件合并到给定文件夹的主电子表格中。现在,我想在代码中创建一个过滤器,它只为标准"ABC“过滤第71列(BT),并将数据合并为一个。你们能帮个哥哥吗?
function myFunction() {
var folder = DriveApp.getFolderById("id");
var filesInterator = folder.getFiles();
var file;
var fileType;
var ssID;
var combinedData = [];
var data;
while(filesInterator.hasNext()){
file = filesInterator.next();
fileType = file.getMimeType();
if(fileType === "application/vnd.google-apps.spreadsheet"){
ssID = file.getId();
data = getDataFromSpreadsheet(ssID);
combinedData = combinedData.concat(data);
} // if ends here
} // while loops ends here
//Logger.log(combinedData.length);
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("QwERTY");
ws.getRange("A2:BK").clearContent();
ws.getRange(2,1,combinedData.length,combinedData[0].length).setValues(combinedData);
}
function getDataFromSpreadsheet(ssID) {
var ss = SpreadsheetApp.openById(ssID);
var ws = ss.getSheetByName("XYZ");
var data = ws.getRange("A2:KB" + ws.getLastRow()).getValues().filter(r => r[0] != '');
return data;
}发布于 2021-04-27 12:15:46
您可以添加以下代码行:
let filterCriteria = SpreadsheetApp
.newFilterCriteria()
.whenTextContains("ABC")
.build();
let filter = ws.getRange(1, 71).createFilter();
filter.setColumnFilterCriteria(71, filterCriteria).sort(71, true);假设ws是您的工作表,您要寻找的条件是when text contains "ABC",那么上面的片段将在BT1单元上的ws工作表上创建一个过滤器。
但是,请记住,根据筛选器的确切标准,您可以通过查看FilterCriteriaBuilder类这里可用的方法来修改当前的筛选器。
参考文献
https://stackoverflow.com/questions/67281181
复制相似问题