我正在使用谷歌脚本来管理谷歌管理员。下面是列出域中所有谷歌用户的脚本。
如果我直接在工作表上创建条件格式,则只要启动脚本,规则就会被删除。这就是为什么我想在脚本本身中包含条件格式,但它不起作用?。
基本上我想要的是:
如果有人能指导我,我真的很感激。
非常感谢。
function listAllUser() {
var sheet11 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetNAME");
var sheet11range = sheet11.getRange("I3:Q")
sheet11range.clear()
var data = [];// array to store values
data.push(['Last Name','First Name','Email','orgUnitPath', 'is Suspended?','is Super Admin?','is Delegated Admin?', 'LastLoginTime','Creation']);// store headers
var pageToken, page;
do {
page = AdminDirectory.Users.list({
domain: 'DomainNAME',
pageToken: pageToken,
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
try{
var user = users[i];
data.push([user.name.familyName,user.name.givenName,user.primaryEmail,user.orgUnitPath, user.suspended,user.isAdmin,user.isDelegatedAdmin, user.lastLoginTime , user.creationTime ]);//store in an array of arrays (one for each row)}
}catch (e){}
}}
pageToken = page.nextPageToken;
} while (pageToken);
sheet11.getRange(2,9,data.length,data[0].length).setValues(data).setVerticalAlignment("middle").setWrap(true);
var t1 = sheet11.getRange("I1:P1").merge();
var t1bis = t1.setValue("List of all USERS");
var dated = sheet11.getRange("Q1")
dated.setValue("Last updated: " + Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'dd-MM-yy hh:mm'));
var range = sheet11.getRange("I1:Q2");
range.setFontWeight("Bold").setFontColor("Blue").setHorizontalAlignment("center").setVerticalAlignment("middle").setBackground("#beedda").setWrap(true);
var isSuperAdm = sheet11.getRange("N3:N").getValue();
var isDelegatAdm = sheet11.getRange("O3:O").getValue();
if(isSuperAdm==true || isDelegatAdm==true){
range.setFontWeight('bold').setFontColor('red')
}
}
答案 0 :(得分:0)
在找了一些教程之后,我终于成功地得到了我想要的,格式化单元格:
function cellsFormatting(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName");
var range1 = sheet.getRange("A1:Q2");
range1.setFontWeight("Bold").setFontColor("Blue").setHorizontalAlignment("center").setVerticalAlignment("middle").setBackground("#beedda").setWrap(true);
var range2 = sheet.getRange ("A3:Q");
range2.setVerticalAlignment('middle').setWrap(true);
}
function setRangeToRedBoldFont(cellRange){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(cellRange);
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenTextEqualTo("TRUE")
.setFontColor("#FF0000")
.setBold(true)
.setRanges([range])
.build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
}
function setRangeToGrayItalicFont(cellRange){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(cellRange);
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied("=DATEVALUE(MID($P3;1;10)) + TIMEVALUE(MID($P3;12;8))<date(2018;8;31)")
.setFontColor("#A9A9A9")
.setItalic(true)
.setRanges([range])
.build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
}
function listAllUser() {
var sheet11 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName");
var sheet11range = sheet11.getRange("I3:Q")
sheet11range.clear();
cellsFormatting();
var t1 = sheet11.getRange("I1:P1").merge();
var t1bis = t1.setValue("List of all USERS");
var dated = sheet11.getRange("Q1")
dated.setValue("Last updated: " + Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'dd-MM-yy hh:mm')); //will input the date & time when the script was launched
var data = [];// array to store values
data.push(['Last Name','First Name','Email','orgUnitPath', 'is Suspended?','is Super Admin?','is Delegated Admin?', 'LastLoginTime','Creation']);// store headers
var pageToken, page;
do {
page = AdminDirectory.Users.list({
domain: 'DomainNAME',
pageToken: pageToken,
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
try{
var user = users[i];
data.push([user.name.familyName,user.name.givenName,user.primaryEmail,user.orgUnitPath, user.suspended,user.isAdmin,user.isDelegatedAdmin, user.lastLoginTime , user.creationTime ]);//store in an array of arrays (one for each row)}
}catch (e){}
}}
pageToken = page.nextPageToken;
} while (pageToken);
sheet11.getRange(2,9,data.length,data[0].length).setValues(data);
var formatRange = "I3:Q";
setRangeToRedBoldFont(formatRange);
setRangeToGrayItalicFont (formatRange);
}
答案 1 :(得分:0)
对于行颜色:
对于 user.isAdmin 和 user.isDelegatedAdmin
function colorLine() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('SheetName');
const rg=sh.getRange(3,9,sh.getLastRow(),9);
const vs=rg.getValues();
vs.forEach((r,i)=>{
if(r[5]||r[6]) {
sh.getRange(i+3,1,1,sh.getLastColumn()).setFontWeight('bold').setFontColor('red');
}
});
}