Skip to content

Instantly share code, notes, and snippets.

@lemkorp
Created August 2, 2019 15:03
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save lemkorp/96c8313ba2c8dc166cf9807ed271ee57 to your computer and use it in GitHub Desktop.
Create a new snippet from a blank template.
name: Propriétés
description: Create a new snippet from a blank template.
host: EXCEL
api_set: {}
script:
content: |
$("#propdoc").click(() => tryCatch(propDoc));
$("#nomfeuilles").click(() => tryCatch(nomFeuilles));
$("#propcell").click(() => tryCatch(propCell));
$("#graphique").click(() => tryCatch(graphique));
async function propDoc() {
await Excel.run(async (context) => {
let wbProp = context.workbook.properties;
wbProp.load("author, title, creationDate");
// Ou, sous la forme d'un tableau de chaînes
// wbProp.load(['author', 'title', 'creationDate']);
await context.sync();
console.log("Auteur : " + wbProp.author);
console.log("Titre : " + wbProp.title);
console.log("Date de création du classeur : " + wbProp.creationDate.toLocaleDateString());
});
}
async function nomFeuilles() {
await Excel.run(async function(context) {
const wb = context.workbook;
const ws = wb.worksheets;
ws.load(["items", "name"]);
await context.sync();
for (let feuille of ws.items) {
console.log(`nom : ${feuille.name}`);
}
});
}
async function propCell() {
await Excel.run(async (context) => {
const feuille = context.workbook.worksheets.getActiveWorksheet();
let cellule = feuille.getCell(0, 0);
const lesProp = cellule.getCellProperties({
address: true,
format: {
fill: {
color: true
},
font: {
color: true,
bold: true,
italic: true,
name: true
}
},
style: true
});
await context.sync();
const proprietes = lesProp.value;
const valeurs = lesProp.value[0][0];
console.log(`Adresse : ${valeurs.address}`);
console.log(`Police : ${valeurs.format.font.name}, couleur : ${valeurs.format.font.color}, gras : ${valeurs.format.font.bold}, italique : ${valeurs.format.font.italic}`);
console.log(`Couleur d'arrière-plan : ${valeurs.format.fill.color}`);
console.log(`Style : ${valeurs.style}`);
});
}
async function graphique() {
await Excel.run(async (context) => {
const wb = context.workbook;
const graphique = wb.getActiveChart();
graphique.load(['chartType', 'height', 'title', 'width']);
await context.sync();
console.log(`Titre du graphique : ${graphique.title.text}`);
console.log(`Type du graphique : ${graphique.chartType}`);
console.log(`Dimensions : ${graphique.width} x ${graphique.height}`);
});
}
/** 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="propdoc" class="ms-Button">
<span class="ms-Button-label">Propriétés du document</span>
</button>
<button id="nomfeuilles" class="ms-Button">
<span class="ms-Button-label">Nom des feuilles du classeur</span>
</button>
<button id="propcell" class="ms-Button">
<span class="ms-Button-label">Propriétés cellule A1</span>
</button>
<button id="graphique" class="ms-Button">
<span class="ms-Button-label">Informations sur le graphique en cours</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/1/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
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