gpt4 book ai didi

google-apps-script - Google App Script,突出显示自上个月以来的新用户

转载 作者:行者123 更新时间:2023-12-05 04:29:19 26 4
gpt4 key购买 nike

我做了一个小函数来检索我们在 Google Workspace 上的用户,并为这个列表创建了一个 cron,每月刷新一次。

我现在想做的是突出显示上个月创建的新用户的单元格,但我还没有找到合适的方法。

即。下一次执行计划是 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'));

}

最佳答案

我相信你的目标如下。

  • 您的电子表格具有第一个标题行和数据行。 “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);

引用资料:

添加:

从您的以下回复中,

Thanks for the hint ! You basically got the idea, but there's still need to do some manual settings in your example. As I want to run this script in a crontab and not care about it anymore, I would need to skip the checkYear and checkMonth config part. Is there any way to define these two vars automatically ?

如果你想在这个月之前设置单元格的背景颜色,下面的示例脚本怎么样?

示例脚本:

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);
}

关于google-apps-script - Google App Script,突出显示自上个月以来的新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72358498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com