vuexcel-utils
Version:
Utils for vuexcel
63 lines • 2.07 kB
JavaScript
/**
* 监听当前的格子变化,实时返回给handler
* @param {function} handler - 回调
* */
var eventResult = null;
export function addMonitor(handler) {
// 移除后添加
removeMonitor(function () {
Excel.run(function (ctx) {
eventResult = ctx.workbook.onSelectionChanged.add(function (event) {
return Excel.run(function (context) {
var workbook = context.workbook;
var selectedRange = workbook.getSelectedRange();
selectedRange.load('address');
return context.sync()
.then(function () {
handler(null, selectedRange.address, eventResult);
return context.sync();
});
});
});
console.info('Event handler is running');
return ctx.sync();
// // 给targetAddress初始化
// let workbook: Workbook = ctx.workbook
// let selectedRange: Excel.Range = workbook.getSelectedRange()
// selectedRange.load('address')
// return ctx.sync().then(function () {
// handler(null, selectedRange.address, eventResult)
// return ctx.sync()
// })
})
.catch(function (e) {
handler(e);
});
});
}
/**
* @param {EventResult} eventResult - 事件对象
* @param {Function} handler - 回调函数
* */
export function removeMonitor(handler) {
if (eventResult && eventResult.context) {
Excel.run(eventResult.context, function (context) {
eventResult.remove();
return context.sync()
.then(function () {
handler();
eventResult = null;
});
}).catch(function (e) {
handler(e);
});
}
else {
handler();
}
}
export default {
addMonitor: addMonitor,
removeMonitor: removeMonitor
};
//# sourceMappingURL=addressMonitor.js.map