专栏首页寒树Office与RPAScript Lab 05:Office JavaScript API助手,Excel 基础操作(3)

Script Lab 05:Office JavaScript API助手,Excel 基础操作(3)

准备工作

上一期内容中,为了创建一个工作表,曾用到一个 forceCreateSheet 的函数,是由 OfficeHelpers 命名空间下的 ExcelUtilities 类所提供的。本期我们就来讲讲 OfficeHelpers 的故事,这是 OfficeJS 提供的一个 Office JavaScript API 助手(office-js-helpers),用以简化 WebAdd-ins 的开发

这是一个开源项目,官网地址如下:

https://github.com/OfficeDev/office-js-helpers

OfficeHelpers

【功能】

OfficeHelpers 命名空间下,提供了一组帮助程序,用于简化 Office 加载项和 Microsoft Teams 选项卡的开发。这些帮助程序将功能作为存储管理,身份验证,对话和其他有用的实用程序等,比如最常用的错误记录:

OfficeHelpers.UI.notifyerror);OfficeHelpers.Utilities.log(error);

认证主要包括了以下五个模块:

  1. 认证
  2. 对话框
  3. 错误记录
  4. 存储助手
  5. 字典

【用法】

在资源库中,引用以下代码:

https://appsforoffice.microsoft.com/lib/1/hosted/office.js@types/office-js

【示例】

从功能性来讲,其最重要的功能之一便是认证(Authenticator)。Authentication helper 是为符合标准的 OAuth Implicit Flow 而构建的。开箱即用,可以方便接入 Microsoft、AzureAD、Google 和 Facebook 等身份验证的集成。以 Microsoft 认证为例:

$("#run").click(() => tryCatch(run));
async function run() {    await Excel.run(async (context) => {        //        var auth = new OfficeHelpers.Authenticator();        //        auth.endpoints.registerMicrosoftAuth('6bab39d1-c5a8-4da9-90f9-66f358362e50', {            redirectUrl: 'https://script-lab.azureedge.net',            scope: 'api://6bab39d1-c5a8-4da9-90f9-66f358362e50/access_as_user'        });        //        auth.authenticate(OfficeHelpers.DefaultEndpoints.Microsoft)            .then(tokenHandler)            .catch(OfficeHelpers.Utilities.log);        await context.sync();    });}
function tokenHandler(token: OfficeHelpers.IToken) {    console.log(JSON.stringify(token, null, 4));}
async function tryCatch(callback) {    try {        await callback();    }    catch (error) {        OfficeHelpers.UI.notify(error);        OfficeHelpers.Utilities.log(error);    }}

其它可用认证的示例,还包括了:

// register Microsoft (Azure AD 2.0 Converged auth) endpoint usingauthenticator.endpoints.registerMicrosoftAuth('client id here');

// register Azure AD 1.0 endpoint usingauthenticator.endpoints.registerAzureADAuth('client id here', 'tenant here');

// register Google endpoint usingauthenticator.endpoints.registerGoogleAuth('client id here');

// register Facebook endpoint usingauthenticator.endpoints.registerFacebookAuth('client id here');

// register any 3rd-Party OAuth Implicit Provider usingauthenticator.endpoints.add('Name of provider', { /* Endpoint Configuration - see office-js-helpers/src/authentication/endpoint.manager.ts */ })

// register Microsoft endpoint by overriding default valuesauthenticator.endpoints.registerMicrosoftAuth('client id here', {    redirectUrl: 'redirect url here',    scope: 'list of valid scopes here'});

【小技巧】

gist.github.com 被墙无法访问解决办法:

windows下 打开C:\Windows\System32\drivers\etc\hosts文件

编辑器打开,在最后行添加192.30.253.118 gist.github.com

后记

小技巧中提到一个方法,此法小编亲自测试有效,未来给大家分享代码以及方便获取代码都用得上。这个还挺重要的,这为以后使用和建立代码共享机制,提供了一个方向。小编未来可以很方便的把教程相关的代码,直接分享到GITHUB上,方便大家一键获到(通过一个gist链接即可)。

从今天开始,代码和相关资源,都将分享在以下的QQ学习群上,方便大家自取。而代码 yaml 格式进行分享。

目录索引

Script Lab 01:快速 Office 365 开发工具

Script Lab 02:Script Lab,知识储备

Script Lab 03:Script Lab,启动函数,Excel 基础操作(1)

Script Lab 04:Script Lab,九九乘法表,Excel 基础操作(2)

Script Lab 05:Office JavaScript API助手,Excel 基础操作(3)

Script Lab 06:事件处理,Excel 基础操作(4)

Script Lab 07:单词“卡拉OK”,Word 基础操作

Script Lab 08:异步调用函数,PowerPoint 基础操作

Script Lab 09:为 Officejs 开发配置 VSCode 环境

Script Lab 10:OIfficeJS 的三种调试方式

本文分享自微信公众号 - 寒树Office与RPA(OfficeRPA),作者:寒树爱函数

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 尝试:Script Lab,快速 O365 开发工具//SL01)

    Script Lab 我希望有一个系列(连载),可是我挺担心没偿没有能力去驾驭它。虽然早年前己经接触过,但一直未有下决心开始 Office 365 的开发之旅,...

    寒树Office与RPA
  • Script Lab 09:异步调用函数,PowerPoint基础操作

    Script Lab 的级初入门教程,到今天就要告一段落了。总结部分,我们来实践一个 PPT 的例子吧。相比 Word 和 Excel 来说,PPT 的 API...

    寒树Office与RPA
  • Script Lab 08:单词“卡拉OK”,Word 基础操作

    今天开始做一个 Word 的例子。基础部分是相同的,区别仅仅在于 Word API 的部分。还记得第一次我们代码的第一行从 Excel.run 开始,这里相应要...

    寒树Office与RPA
  • Python_子类调用父类的方法

    1.方式一 子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法...

    用户2398817
  • Python_类的继承

    1.类的继承关系和生活中父亲、儿子、孙子之间的关系一样,Python中若A类继承B类,则A类称之为子类,B类称之为父类(也称为基类)。 2.类的继承方式分为:单...

    用户2398817
  • python中子类调用父类的初始化方法

    http://bestchenwu.iteye.com/blog/1044848

    用户2398817
  • 渗透测试神器Burp Suite现已推出2.0测试版

    Burp Suite是进行Web应用安全测试的一个集成平台,无缝融合各种安全工具并提供全面的接口适配,支持完整的Web应用测试流程,从最初的映射和应用程序的攻击...

    FB客服
  • Python学习 :面向对象 -- 三大

          -- 子类会根据左侧优先原则,在第一个父类中寻找方法,在找不到的情况下在去父类的父类中寻找

    用户2398817
  • PHP中Redis扩展无法加载问题

    phpredis编译出来的redis.so也需要拷贝到"/usr/lib64/php/modules/"中;

    叫我可儿呀
  • maven(二)创建工程

    leeqico

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动