【问题标题】:Office.js | Excell add in | get selected cell address on clickOffice.js | Excel 添加 |点击获取选定的单元格地址
【发布时间】:2020-06-05 21:06:07
【问题描述】:

我正在使用 Office.js 开发 Excel Web 加载项。我需要使用以下 scenario 获取所选单元格的地址:

  1. 打开 Excel,不要加载加载项,单击 Excel 工作表区域中的任何单元格。例如:A4
  2. 加载加载项。
  3. 再次单击与加载我们选择的加载项之前相同的单元格编号,例如:在工作表区域突出显示的 A4。

它没有触发以下代码:

Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged,
        function (eventArgs) {
            Excel.run(function (ctx) {
                var range = ctx.workbook.getSelectedRange();
                range.load(['address', 'values']);
                return ctx.sync().then(function () {
                    showNotification("", range.values[0][0] + " Address:" + range.address);
                });
            });                    
        });

注意: 如果我选择了以前选择的单元格 ID 以外的单元格 ID,例如 A5,它可以正常工作。即使我再次尝试从单元格 id A5 选择到之前选择的单元格 id A4,它也可以正常工作。 只有当我们尝试选择相同的单元格时,它才不会触发事件。 花很多时间有人可以帮助或它在microsoft excel中的限制吗?

【问题讨论】:

    标签: excel reactjs office365 office-js excel-addins


    【解决方案1】:

    我认为这是设计使然,因为您正在监听 SelectionChanged 事件,如果当前选择是 A4,并且您单击 A4,它不会触发该事件,因为您没有更改选择。

    我不确定你的场景,如果你想显示当前的选择,你可以在注册事件之前添加代码。这是一个示例代码

    async function run() {
      await Excel.run(async (context) => {
        var range = context.workbook.getSelectedRange();
        range.load();
        await context.sync();
        console.log(range);
        Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, showSelection);
      });
    }
    
    async function showSelection(){
      Excel.run(async (context) => {
        var range = context.workbook.getSelectedRange();
        range.load();
        await context.sync();
        console.log(range);
      });
    }
    

    【讨论】:

    • 谢谢Raymond Lu,明白了:意味着按照设计它只听SelectionChanged事件,如果当前选择是A4,并且你点击A4,它不会触发事件,因为你没有改变选择。
    • 正确,这是设计使然,因为事件是 onSelectionChanged,所以单击 A4 不会触发选择更改行为。所以我们不会触发这个事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多