Skip to content

Instantly share code, notes, and snippets.

@barhoring
Forked from jiju-MS/Group&UnGroup (1).EXCEL.yaml
Last active September 26, 2019 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save barhoring/6ffdb514343e58986075095cae6f730c to your computer and use it in GitHub Desktop.
Save barhoring/6ffdb514343e58986075095cae6f730c to your computer and use it in GitHub Desktop.
Create a new snippet from a blank template.
name: Group_UnGroup_Outline
description: Playing with Excel API.
host: EXCEL
api_set: {}
script:
content: |
$("#groupRow").click(() => tryCatch(groupRow));
$("#groupCol").click(() => tryCatch(groupCol));
$("#ungroupRow").click(() => tryCatch(ungroupRow));
$("#ungroupCol").click(() => tryCatch(ungroupCol));
$("#showDetailsRow").click(() => tryCatch(showDetailsRow));
$("#showDetailsCol").click(() => tryCatch(showDetailsCol));
$("#hideDetailsRow").click(() => tryCatch(hideDetailsRow));
$("#hideDetailsCol").click(() => tryCatch(hideDetailsCol));
async function groupRow() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.group("ByRows");
console.log("Your code goes here");
await context.sync();
});
}
async function groupCol() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.group("ByColumns");
console.log("Your code goes here");
await context.sync();
});
}
async function ungroupRow() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.ungroup("ByRows");
console.log("Your code goes here");
await context.sync();
});
}
async function ungroupCol() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.ungroup("ByColumns");
console.log("Your code goes here");
await context.sync();
});
}
async function ungroupRow() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.ungroup("ByRows");
console.log("Your code goes here");
await context.sync();
});
}
async function showDetailsRow() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.showGroupDetails("ByRows");
console.log("Your code goes here");
await context.sync();
});
}
async function showDetailsCol() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.showGroupDetails("ByColumns");
console.log("Your code goes here");
await context.sync();
});
}
async function hideDetailsRow() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.hideGroupDetails("ByRows");
console.log("Your code goes here");
await context.sync();
});
}
async function hideDetailsCol() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var range = context.workbook.getSelectedRange();
range.hideGroupDetails("ByColumns");
console.log("Your code goes here");
await context.sync();
});
}
async function expandCollapseByIndex() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
sheet.expandCollapseRowByIndex(2, 5);
// ol.load();
console.log("Your code goes here");
await context.sync();
});
}
/** 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: |-
<button id="groupRow" class="ms-Button">
<span class="ms-Button-label">Group Rows</span>
</button>
<button id="groupCol" class="ms-Button">
<span class="ms-Button-label">Group Column</span>
</button>
<button id="ungroupRow" class="ms-Button">
<span class="ms-Button-label">Ungroup Rows</span>
</button>
<button id="ungroupCol" class="ms-Button">
<span class="ms-Button-label">Ungroup Columns</span>
</button>
<button id="showDetailsRow" class="ms-Button">
<span class="ms-Button-label">Show Details Row</span>
</button>
<button id="showDetailsCol" class="ms-Button">
<span class="ms-Button-label">Show Details Col</span>
</button>
<button id="hideDetailsRow" class="ms-Button">
<span class="ms-Button-label">Hide Details Row</span>
</button>
<button id="hideDetailsCol" class="ms-Button">
<span class="ms-Button-label">Hide Details Column</span>
</button>
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
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
@microsoft/office-js-helpers@0.7.4/dist/office.helpers.min.js
@microsoft/office-js-helpers@0.7.4/dist/office.helpers.d.ts
jquery@3.1.1
@types/jquery@3.3.1
@barhoring
Copy link
Author

Instructions:
Add the Script Lab add-in:
Go to Add-ins under Insert tab. Search for Script Lab and add it
Click the Script Lab tab, and click Code
Click Import and attach the link to this gist
Click run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment