Created
January 12, 2021 02:35
-
-
Save Rick-Kirkham/3b76403593d0c5ee0a7facaa8adf3d17 to your computer and use it in GitHub Desktop.
Performs a basic Excel API call using TypeScript.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Basic API call (TypeScript) (1) | |
description: Performs a basic Excel API call using TypeScript. | |
host: EXCEL | |
api_set: {} | |
script: | |
content: | | |
$("#run").click(() => tryCatch(run)); | |
async function run() { | |
const contextualTabJSON = `{ | |
"actions": [ | |
{ | |
"id": "executeWriteData", | |
"type": "ExecuteFunction", | |
"functionName": "writeData" | |
} | |
], | |
"tabs": [ | |
{ | |
"id": "CtxTab1", | |
"label": "Data", | |
"groups": [ | |
{ | |
"id": "CustomGroup111", | |
"label": "Insertion", | |
"icon": [ | |
{ | |
"size": 32, | |
"sourceLocation": "https://cdn.contoso.com/addins/datainsertion/Images/Group32x32.png" | |
}, | |
{ | |
"size": 80, | |
"sourceLocation": "https://cdn.contoso.com/addins/datainsertion/Images/Group80x80.png" | |
} | |
], | |
"controls": [ | |
{ | |
"type": "Button", | |
"id": "CtxBt112", | |
"actionId": "executeWriteData", | |
"enabled": false, | |
"label": "Write Data", | |
"superTip": { | |
"title": "Data Insertion", | |
"description": "Use this button to insert data into the document." | |
}, | |
"icon": [ | |
{ | |
"size": 32, | |
"sourceLocation": "https://cdn.contoso.com/addins/datainsertion/Images/WriteDataButton32x32.png" | |
}, | |
{ | |
"size": 80, | |
"sourceLocation": "https://cdn.contoso.com/addins/datainsertion/Images/WriteDataButton80x80.png" | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
}`; // Assign the JSON string. | |
const contextualTab = JSON.parse(contextualTabJSON); | |
await Office.ribbon.requestCreateControls(contextualTab); | |
await Excel.run((context) => { | |
var charts = context.workbook.worksheets.getActiveWorksheet().charts; | |
charts.onActivated.add(showDataTab); | |
charts.onDeactivated.add(hideDataTab); | |
return context.sync(); | |
}); | |
} | |
async function showDataTab() { | |
await Office.ribbon.requestUpdate({ | |
tabs: [ | |
{ | |
id: "CtxTab1", | |
visible: true | |
} | |
] | |
}); | |
} | |
async function hideDataTab() { | |
await Office.ribbon.requestUpdate({ | |
tabs: [ | |
{ | |
id: "CtxTab1", | |
visible: false | |
} | |
] | |
}); | |
} | |
/** Default helper for invoking an action and handling errors. */ | |
async function tryCatch(callback) { | |
try { | |
await callback(); | |
} catch (error) { | |
// Note: In a production add-in, you'd want to notify the user through your add-in's UI. | |
console.error(error); | |
} | |
} | |
language: typescript | |
template: | |
content: |- | |
<section class="ms-font-m"> | |
<p class="ms-font-m">This sample demonstrates basic Excel API calls.</p> | |
</section> | |
<section class="samples ms-font-m"> | |
<h3>Try it out</h3> | |
<p class="ms-font-m">Select some cells in the worksheet, then press <b>Highlight selected range</b>.</p> | |
<button id="run" class="ms-Button"> | |
<span class="ms-Button-label">Highlight selected range</span> | |
</button> | |
</section> | |
language: html | |
style: | |
content: |- | |
section.samples { | |
margin-top: 20px; | |
} | |
section.samples .ms-Button, section.setup .ms-Button { | |
display: block; | |
margin-bottom: 5px; | |
margin-left: 20px; | |
min-width: 80px; | |
} | |
language: css | |
libraries: | | |
https://appsforoffice.microsoft.com/lib/beta/hosted/office.js | |
@types/office-js-preview | |
office-ui-fabric-js@1.4.0/dist/css/fabric.min.css | |
office-ui-fabric-js@1.4.0/dist/css/fabric.components.min.css | |
core-js@2.4.1/client/core.min.js | |
@types/core-js | |
jquery@3.1.1 | |
@types/jquery@3.3.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment