我已经尝试了该网站上列出的至少 3 种方法,但没有一种方法可以删除我不想要的行。希望有人可以帮助执行这个函数。
我想要所有 Active Directory 组及其成员的列表,但我想排除某些组([电子邮件受保护]、[电子邮件受保护])显示在 A 列的列表中。
这些群组中的成员与目录中的其他成员具有不同的域([电子邮件受保护]来自 [电子邮件受保护])。
其中大约有 6 个组需要删除。
function listAllGroups() {
var RatatoskSheet = SpreadsheetApp.getActiveSpreadsheet();
var grouprows = \[\];
var pageToken;
var page; //THIS IS WHERE I'M INCLUDING ALL GROUPS - HOW DO I EXCLUDE THE [email protected] GROUP ONLY?
do {
page = AdminDirectory.Groups.list({ domain: 'domain.org', maxResults: 100, pageToken: pageToken });
var groups = page.groups;
if (groups) {
for (var i = 0; i \< groups.length; i++) {
var group = groups\[i\];
var grouprow = group.email;
grouprows.push(grouprow)
}
}
pageToken = page.nextPageToken;
} while (pageToken);
var rows = \[\];
var pageToken, page2; //THIS IS WHERE I'M INCLUDING ALL MEMBERS IN GROUPS - HOW DO I EXCLUDE [email protected] MEMBERS (FROM THE [email protected] GROUP)?
for (var j = 0; j \< grouprows.length; j++) {
do {
page2 = AdminDirectory.Members.list(grouprows\[j\], { domainName: '@domiain.org', maxResults: 1000, pageToken: pageToken, });
var members = page2.members;
if (members) {
for (var i = 0; i \< members.length; i++) {
var member = members\[i\];
var row = \[member.email, grouprows\[j\]\];
rows.push(row);
}
}
pageToken = page2.nextPageToken;
} while (pageToken);
if (rows.length \> 1) {
var groupData = RatatoskSheet.getSheetByName("Groups");
var header = \['UserEmail', 'GroupID'\];
groupData.clear();
groupData.appendRow(header).setFrozenRows(1);
groupData.getRange(2, 1, rows.length, header.length).setValues(rows);
}
}
}
我尝试添加“删除”
for (var i = 0; i \< groups.length; i++) {
if (groups\[i\].getName() == "[email protected]") {
groups\[i\].remove();
}
像这样:
var page;
do {
page = AdminDirectory.Groups.list({ domain: 'domain.org', maxResults: 100, pageToken: pageToken });
var groups = page.groups;
if (groups) {
for (var i = 0; i \< groups.length; i++) {
var group = groups\[i\];
var grouprow = group.email;
grouprows.push(grouprow)
}
for (var i = 0; i \< groups.length; i++) { //adding in an attempt to remove certain groups
if (groups\[i\].getName() == "[email protected]") {//.
groups\[i\].remove();//.
}//.
}
还有这个:
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[1].includes('[email protected]')) {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
}
还有这个:
function deleteRows() {
varsheet = SpreadsheetApp.getActiveSheet();
vartextToFind = "[email protected]";
varrowsToDelete = [];
varlastRow = sheet.getMaxRows();
varformulas = sheet.getRange("B1:B"+ lastRow).getFormulas();
for(vari = 0; i < formulas.length; i++) {
varformula = formulas[i][0];
varpattern = newRegExp('\\b'+ textToFind + '\\b', 'i');
if(formula && pattern.test(formula)) {
rowsToDelete.push(i + 1);
}
}
if(rowsToDelete.length> 0) {
rowsToDelete.reverse().forEach(function(rowIndex) {
sheet.deleteRow(rowIndex);
});
}
}
但它们都不起作用,我仍然遇到那些坏团体???
你尝试过类似的吗?
const keepers = ["[email protected]","[email protected]","[email protected]"];
do {
page = JSON.parse(AdminDirectory.Groups.list({ domain: 'domain.org', maxResults: 100, pageToken: pageToken }));
var groups = page.groups.filter(g => ~keepers.indexOf(g.id))