Environment Setup

Official Guide

Main API Usage

There are 2 types of main API:

  1. host-specific API: able to access oneNote related contents, such as section, page details
  2. Common API: able to access Office related contents, such as selected content , font and other software common details.

Host-Specfic API Usage

  1. Access application instance
  2. Create proxy
  3. Implement this proxy to do load action, this action will be push push into queue, but will NOT execute immediately
  4. Invoke context.sync to execute the events in the queue.
function getPagesInSection() {
  OneNote.run((context) => {
    // 1. Access API via context.application, access pages details from getActiveSection()
    var pages = context.application.getActiveSection().pages;

    // 2. load the page id & title, but will NOT execute immediately 
    pages.load('id,title');

    // 3. Async function, execute the events in the queue
    return context.sync()
      .then(() => {

        // 4 Access the 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 Usage

function getSelectedText() {
  // Access the mouse selected text
  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);
    });
}