У меня проблемы с загрузкой пользовательских свойств из Excel при начальной загрузке с использованием Office js. Мы используем реагировать с Office JS. Нам нужно загрузить пользовательские свойства из Excel, когда Excel открывается в первый раз (Office.AutoShowTaskpaneWithDocument имеет значение true).
Вот код в index.js,
window.Office.initialize = (reason) => {
ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));
};
In App.js
window.Excel.run(async (context) => {
var docProps;
try {
var contextProps = await this.loadCustomProperties(context);
docProps = await this.getDocumentProperties(context);
}
catch(error) {
console.error("Error getting document properties");
}
});
метод loadCustomProperties:
async loadCustomProperties (context) {
console.log('context-getProperties');
try {
context.workbook.load('properties');
await context.sync();
}
catch(error) {
console.log('error loading properties of workbook');
}
context.workbook.properties.load('custom');
await context.sync();
try {
var customProps = context.workbook.properties.custom;
customProps.load('items');
await context.sync();
}
catch(error) {
console.log('error loading custom properties items');
}
return context.sync().then(function(){
console.log('context.workbook.properties.custom loaded successfully')
});
}
Метод getDocumentProperties:
var DOCUMENT_SINGLEPROPS = ['DOCUMENT_PROP1', 'DOCUMENT_PROP2']
async getDocumentProperties (context) {
let customProps = new documentProperty();
const customDocProps = context.workbook.properties.custom;
for(var i = 0; i < DOCUMENT_SINGLEPROPS.length; i++) {
const custProp = DOCUMENT_SINGLEPROPS[i];
let customProperty = customDocProps.getItemOrNullObject(custProp);
customProperty.load("key, value");
await context.sync();
if (!customProperty.isNullObject) {
customProps[custProp] = customProperty.value;
}
else {
console.log("UNABLE TO FIND PROPERTY - " + custProp);
}
}
console.log('------- custom document properties -------');
console.log(customProps);
return customProps;
}
Приложение всегда выдает ошибку при начальной загрузке. Приведенный выше код работает нормально, когда мы пытаемся явно перезагрузить из надстройки. Похоже, что свойства документа не загружаются к моменту получения кода и это тоже в первый раз. Пожалуйста, дайте мне знать, если это так. Есть ли способ подождать полной загрузки Office js?