name: Custom document properties
description: Adds and reads custom document properties of different types.
host: WORD
api_set: {}
script:
content: |
$("#number").click(() => tryCatch(insertNumericProperty));
$("#string").click(() => tryCatch(insertStringProperty));
$("#read").click(() => tryCatch(readCustomDocumentProperties));
async function insertNumericProperty() {
await Word.run(async (context) => {
context.document.properties.customProperties.add("Numeric Property", 14);
await context.sync();
console.log("Property added");
});
}
async function insertStringProperty() {
await Word.run(async (context) => {
context.document.properties.customProperties.add("String Property", "Hello World!");
23
await context.sync();
console.log("Property added");
});
}
async function readCustomDocumentProperties() {
await Word.run(async (context) => {
const properties = context.document.properties.customProperties;
properties.load("key,type,value");
await context.sync();
for (let i = 0; i < properties.items.length; i++)
console.log(
"Property Name:" +
properties.items[i].key +
"; Type=" +
properties.items[i].type +
"; Property Value=" +
properties.items[i].value
);
});
}
/** 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);