Excel:TypeScript获取用户名或电子邮件地址

n3ipq98p  于 2023-01-27  发布在  TypeScript
关注(0)|答案(1)|浏览(256)

由于工作从谷歌套件移动到微软已经开始学习 typescript 的基础知识。以前达到了与VBA的水平。在阅读了几个论坛后,我想知道是否有人知道如何简单地获得用户的姓名或电子邮件地址,正在使用在线Excel工作表?以前的VBA代码很简单:

dim username as string
username = Application.Username

那么这个变量可以在A1中设置一个值。
欢迎提出任何建议。
最美好的祝愿,

db2dz4w8

db2dz4w81#

Office JavaScript API没有提供任何属性或方法,但您可以考虑从SSO使用的访问令牌(JWT)中检索所需的信息,请查看以下代码:

async function getUserData() {
    try {
        let userTokenEncoded = await OfficeRuntime.auth.getAccessToken();
        let userToken = jwt_decode(userTokenEncoded); // Using the https://www.npmjs.com/package/jwt-decode library.
        console.log(userToken.name); // user name
        console.log(userToken.preferred_username); // email
        console.log(userToken.oid); // user id     
    }
    catch (exception) {
        if (exception.code === 13003) {
            // SSO is not supported for domain user accounts, only
            // Microsoft 365 Education or work account, or a Microsoft account.
        } else {
            // Handle error
        }
    }
}

如果加载项是在不支持SSO的旧版本Office上加载的,则getAccessToken调用将失败。对于Excel、Word和PowerPoint加载项,通常需要回退到使用Microsoft标识平台。有关详细信息,请参阅使用Microsoft标识平台进行身份验证。
有关详细信息,请参见Enable single sign-on (SSO) in an Office Add-in

相关问题