Excel 登记选举变更
在过去的几天里,我一直在尝试为excel制作一个基于VUE的taskpane加载项 我遵循了上的指南,并尝试注册onSelectionChange的事件处理程序。它在某种程度上是成功的,但它似乎在一段时间后将事件排队。然后,我必须将任务窗格悬停或执行类似于ctrl+c的操作,以便它执行排队的代码 我是JS和Vue的新手,所以我很可能错过了一个重要的上下文 我的代码如下:Excel 登记选举变更,excel,vue.js,office-js,office-addins,Excel,Vue.js,Office Js,Office Addins,在过去的几天里,我一直在尝试为excel制作一个基于VUE的taskpane加载项 我遵循了上的指南,并尝试注册onSelectionChange的事件处理程序。它在某种程度上是成功的,但它似乎在一段时间后将事件排队。然后,我必须将任务窗格悬停或执行类似于ctrl+c的操作,以便它执行排队的代码 我是JS和Vue的新手,所以我很可能错过了一个重要的上下文 我的代码如下: import Vue from 'vue' import App from './App' Vue.config.produ
import Vue from 'vue'
import App from './App'
Vue.config.productionTip = false
/* eslint-disable no-new */
const Office = window.Office
Office.onReady()
.then(
registerSelectionChange(), // moved in here based on input from Rick
new Vue({
el: '#app',
components: {App},
template: '<App></App>'
})
)
async function registerSelectionChange() {
return await Excel.run(async function (context) {
let ws = context.workbook.worksheets.getActiveWorksheet();
ws.onSelectionChanged.add(handleSelectionChange);
return await context.sync()
})
}
async function handleSelectionChange(event){
return await Excel.run(async function(context){
let ws = context.workbook.worksheets.getActiveWorksheet();
let range = ws.getRange(event.address)
range.values = [[1]]
return await context.sync()
})
}
从“Vue”导入Vue
从“./App”导入应用程序
Vue.config.productionTip=false
/*eslint禁用无新*/
const Office=window.Office
Office.onReady()
.那么(
registerSelectionChange(),//根据Rick的输入移到这里
新Vue({
el:“#应用程序”,
组件:{App},
模板:“”
})
)
异步函数寄存器SelectionChange(){
return wait Excel.run(异步函数(上下文){
让ws=context.workbook.worksheets.getActiveWorksheet();
ws.onSelectionChanged.add(handleSelectionChange);
return wait context.sync()
})
}
异步函数handleSelectionChange(事件){
return wait Excel.run(异步函数(上下文){
让ws=context.workbook.worksheets.getActiveWorksheet();
let range=ws.getRange(event.address)
range.values=[[1]]
return wait context.sync()
})
}
由于registerSelectionChange()
调用Office API,因此应该在Office.onReady
中调用它。有关详细信息,请参阅。请查看这是否有帮助。由于registerSelectionChange()
调用Office API,您应该在Office.onReady中调用它。有关详细信息,请参阅。请查看是否有帮助。我现在发现注册表选择更改()存在问题。
。修复方法是添加MutationObserver=null代码>在部分中。
更多信息。我现在发现注册表选择更改()
存在问题。修复方法是添加MutationObserver=null代码>在部分中。
更多信息。Hi Rick谢谢您的输入。我已将其移动到我的.then()
中,当任务窗格重新加载时,它会工作。但是,在一段时间后将事件排队的问题仍然存在。您能否提供有关排队的更多详细信息?哪些步骤会导致问题,您希望看到什么?是否重复选择不同的内容?当我重新加载任务窗格并在工作表周围单击时,所选单元格的值将更改为1,持续约10秒。在最初的10秒后,它将停止输入1。如果我将鼠标悬停在任务窗格上,或按ctrl+c键,它将在停止反应后所选的所有单元格中输入1。嗨,Rick,谢谢你的输入。我已将其移动到我的.then()
中,当任务窗格重新加载时,它会工作。但是,在一段时间后将事件排队的问题仍然存在。您能否提供有关排队的更多详细信息?哪些步骤会导致问题,您希望看到什么?是否重复选择不同的内容?当我重新加载任务窗格并在工作表周围单击时,所选单元格的值将更改为1,持续约10秒。在最初的10秒后,它将停止输入1。如果我将鼠标悬停在任务窗格上或按ctrl+c键,它将在停止反应后选择的所有单元格中输入1。