环境搭建

环境搭建部分不想做了,直接参考 官方文档 ]就是了。

API 的使用

主要有两种核心 API:

  1. host-specific API: 可以获取到 oneNote 相关的内容, 比如 section, page 等等信息
  2. Common API: 可以获取到 Office 相关的内容,t 这里面有一通用的操作比如,比如对字以及对内容的一些操作。

Host-Specfic API 的使用

  1. 获取 application instance
  2. 创建一个 proxy
  3. 使用这个 proxy 来进行 load 操作, 这个操作会被加到队列里面, 但是不会进行操作。
  4. 执行 context.sync 将所有队列里面的操作执行起来。
function getPagesInSection() {
  OneNote.run((context) => {
    // 1. 首先通过 context.application 获取到 API,然后调用其中的方法获取到当前 section 的 pages
    var pages = context.application.getActiveSection().pages;

    // 2. load 一下对应的 id 和 title, 但是不做操作
    pages.load('id,title');

    // 3. 在这一步就对队列里面的任务经营进行,注意一下这个地方是 async
    return context.sync()
      .then(() => {

        // 3.5 取出得到的 id 和 title
        for (let page of pages.items) {
          var pageId = page.id;
          var pageTitle = page.title;
          console.log(pageTitle + ': ' + pageId);
        }
      })
      .catch((error) => {
        console.log("Error: " + error);
        if (error instanceof OfficeExtension.Error) {
          console.log("Debug info: " + JSON.stringify(error.debugInfo));
        }
      });
  });
}

Common API 的调用

function getSelectedText() {
  // 这个地方是获取一个页面里面鼠标选中的文本
  Office.context.document.getSelectedDataAsync(
    Office.CoercionType.Text, {
      valueFormat: "unformatted"
    },
    function(asyncResult) {
      var error = asyncResult.error;
      if (asyncResult.status === Office.AsyncResultStatus.Failed) {
        console.log(error.message);
      } else console.log(asyncResult.value);
    });
}
  • 文章标题: 《OneNote 插件开发-主要 API》
  • 发布日期: 2019-10-26
  • 文章分类: Tech
  • 相关标签: Onenote Office