我做了一個小功能來檢索我們在 Google Workspace 上擁有的用戶,并為這個串列制作了一個 cron,每月重繪 一次。
我現在想做的是突出顯示上個月創建的新用戶的單元格,但我還沒有找到合適的方法來做到這一點。
IE。下一次執行計劃將在 6 月 1 日,我需要突出顯示 5 月創建的所有帳戶
有什么提示嗎?
我當前的代碼如下所示:
function listAllUsers() {
var sh = '-- my sheet id --';
var sheet = SpreadsheetApp.openById(sh);
var sheet1 = sheet.getSheetByName('sheet title');
var sheet1range = sheet.getRange("A:H")
sheet1range.clear()
var data = [];
data.push(['Email' ,'First Name', 'Last Name', 'Suspended', 'Last Login Time','Creation', '2FA Active', 'Is admin']);
var pageToken, page;
do {
page = AdminDirectory.Users.list({
domain: '-- my domain --',
pageToken: pageToken
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i ) {
var user = users[i];
data.push([user.primaryEmail, user.name.givenName, user.name.familyName, user.suspended, user.lastLoginTime , user.creationTime, user.isEnrolledIn2Sv, user.isAdmin ]);
}
} else {
Logger.log('No users found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
sheet1.getRange(1,1,data.length,data[0].length).setValues(data);
var dated = sheet.getRange("P1")
dated.setValue(Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'dd-MMM-yyy'));
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您的電子表格有第一個標題行和資料行。“F”列具有用戶帳戶的創建時間值。
- 您想為“F”列設定特定月份的單元格(“A”到“H”列)的背景顏色。
- 您想使用 Google Apps 腳本實作此目的。
示例腳本:
function sample() {
var checkYear = 2022; // Please set year.
var checkMonth = 5; // Please set month. This sample is May.
var color = "red"; // Please set the color you want to set.
var sh = '-- my sheet id --';
var sheet = SpreadsheetApp.openById(sh);
var sheet1 = sheet.getSheetByName('sheet title');
var range = sheet1.getRange("A2:H" sheet1.getLastRow());
var backgrounds = range.getValues().map(r => Array(r.length).fill(r[5].getFullYear() == checkYear && r[5].getMonth() == checkMonth - 1 ? color : null));
range.setBackgrounds(backgrounds);
}
運行此腳本時,通過檢查“F”列的值,將“A”到“H”列的背景顏色更改為“紅色”。
當你想在你的展示腳本中包含這個腳本時,下面的修改怎么樣?在這種情況下,請將以下腳本添加到函式的底部。
var checkYear = 2022; // Please set year. var checkMonth = 5; // Please set month. This sample is May. var color = "red"; // Please set the color you want to set. var range = sheet1.getRange("A2:H" sheet1.getLastRow()); var backgrounds = range.getValues().map(r => Array(r.length).fill(r[5].getFullYear() == checkYear && r[5].getMonth() == checkMonth - 1 ? color : null)); range.setBackgrounds(backgrounds);
參考:
- 地圖()
- 設定背景(顏色)
添加:
從您的以下回復中,
感謝您的提示!你基本上明白了,但在你的例子中仍然需要做一些手動設定。因為我想在 crontab 中運行這個腳本并且不再關心它,所以我需要跳過 checkYear 和 checkMonth 配置部分。有沒有辦法自動定義這兩個變數?
如果你想在這個月之前設定單元格的背景顏色,下面的示例腳本怎么樣?
示例腳本:
function sample() {
var color = "red"; // Please set the color you want to set.
var date = new Date();
var checkYear = date.getFullYear();
var checkMonth = date.getMonth();
var sh = '-- my sheet id --';
var sheet = SpreadsheetApp.openById(sh);
var sheet1 = sheet.getSheetByName('sheet title');
var range = sheet1.getRange("A2:H" sheet1.getLastRow());
var backgrounds = range.getValues().map(r => {
if (r[5]) {
var d = new Date(r[5]);
return Array(r.length).fill(d.getFullYear() == checkYear && d.getMonth() == checkMonth ? color : null)
}
return Array(r.length).fill(null);
});
range.setBackgrounds(backgrounds);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481057.html
上一篇:多個變數中的應用腳本最后一行專案
