如何用Google Apps Script向Google Sheet自动插入本人姓名、电话等联系方式
实现步骤
1. 前置配置:添加People API服务
打开脚本编辑器后,点击左侧菜单栏「服务」旁边的「+」号,在弹出的列表中找到「People API」,选中后点击「添加」即可。
2. 替换原有代码
把原有代码全部替换为下方的调整后代码:
// 给表格添加自定义菜单 function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('添加我到工作组名单') .addItem('添加我的信息', 'AddMe') .addToUi(); } function AddMe() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var dataSheet = ss.getSheetByName("Data"); var activeUserEmail = Session.getActiveUser().getEmail(); try { // 调用People API获取当前用户的姓名、手机号信息 var person = People.People.get('people/me', { personFields: 'names,phoneNumbers' }); // 提取姓名、手机号 var userName = person.names[0].displayName; var userPhone = person.phoneNumbers ? person.phoneNumbers[0].value : '未登记手机号'; // ========== 固定写入第2行(和原代码逻辑一致,不需要可以注释) ========== dataSheet.getRange('A2').setValue(activeUserEmail); // A列存邮箱 dataSheet.getRange('B2').setValue(userName); // B列存姓名 dataSheet.getRange('C2').setValue(userPhone); // C列存手机号 // ========== 自动追加到最后一行(需要用的话取消注释,注释上面的固定行逻辑) ========== // var lastRow = dataSheet.getLastRow() + 1; // dataSheet.getRange(lastRow, 1).setValue(activeUserEmail); // dataSheet.getRange(lastRow, 2).setValue(userName); // dataSheet.getRange(lastRow, 3).setValue(userPhone); SpreadsheetApp.getUi().alert('已成功添加你的信息到工作组名单!'); } catch (e) { SpreadsheetApp.getUi().alert('获取信息失败:' + e.message); } }
3. 自定义调整说明
- 如需修改字段存储位置,直接调整
getRange的单元格坐标即可,比如要把手机号放到D列,把C2改成D2即可 - 原代码逻辑是固定覆盖第2行内容,如果做名单需要每次新增一行,直接注释掉固定写入的3行代码,取消下方自动追加逻辑的注释即可
- 如果域内部分员工没有登记手机号,代码会自动填充
未登记手机号,不会触发报错
内容的提问来源于stack exchange,提问作者Femke van der Zeijden
相关产品推荐
相关产品推荐

