You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel调用Teams根据姓名批量查询对应邮箱地址?

实现Excel自动从Teams匹配人员邮箱的方案

这个需求完全可行,核心是借助Microsoft Graph API调取Teams/Office 365的人员数据,再和Excel里的姓名做匹配,替代手动查询。下面给几种落地方法:

方法1:Power Query + Microsoft Graph API(无代码基础也能搞)

  • 先处理Excel里的姓名:把A列「姓氏, 名字」拆成姓和名,用Power Query的Text.Split函数就能搞定
  • 在Power Query里调用Microsoft Graph API的/users接口,拉取组织内所有用户的姓名、邮箱信息
    • 前提:得有Office 365权限,调用API需要OAuth 2.0身份验证,跟着Power Query的引导走就行
  • 把Excel的姓名列表和API返回的用户数据做匹配,用姓+名组合精准匹配,遇到同名的可以加部门这类额外条件
  • 最后把匹配到的邮箱加载回Excel对应的列里

方法2:VBA脚本调用API(适合懂点代码的)

  • 先写VBA代码拆分A列的姓名为姓和名
  • 实现OAuth身份验证后,调用Graph API的精准查询接口:/users?$filter=startswith(surname,'姓氏') and startswith(givenName,'名字')
  • 解析返回的JSON数据,把邮箱地址提取出来写入对应单元格
  • 核心代码片段参考:
' 假设已经拿到访问令牌token
Dim url As String
url = "https://graph.microsoft.com/v1.0/users?$filter=startswith(surname,'" & lastName & "') and startswith(givenName,'" & firstName & "')"
' 发送HTTP请求并解析结果,提取mail字段写入单元格

方法3:Power Automate自动化流程(纯零代码)

  • 建一个Power Automate云流,要么设成Excel有新行时自动触发,要么手动批量处理
  • 从Excel读姓名列,拆分姓和名
  • 调用「Microsoft Graph - 列出用户」动作,加筛选条件匹配姓名
  • 把匹配到的邮箱写回Excel对应列

注意事项

  • 权限:得有访问组织Office 365用户数据的权限,一般需要管理员给你开User.Read.All权限
  • 同名处理:如果公司有同名的人,得加部门、工号这类额外条件,避免匹配错
  • 自动刷新:用Power Query或Power Automate的话,可以设置定时自动刷新,不用每次手动跑

内容的提问来源于stack exchange,提问作者Jesse Jolley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:56:06