Office-js中的Excel函数解析

问题描述

我想写一个office-js excel插件

  1. 解析使用范围,以查找所有形式为“ = foo(arg)”的公式,并且
  2. 使用出现的地址和arg的值填充数组。 arg例如可以是单元格引用,例如$ A $ 1。

我管理了第一部分,但是我将如何实施第二部分?我了解office-js不允许评估。作为评估方法,我考虑将“ = foo(arg)”替换为“ = arg”,重新加载值,然后将原始的“ = foo(arg)”放回单元格中。

有没有更清洁的解决方案? 通过上述解决方案,我该如何跟踪要加载和修改的对象?

我找到foo()的代码

Office.onReady(function() {
  
  Excel.run(function (context) {
    
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    
    var rng = sheet.getUsedRange();
    rng.load("formulas");
    
    var foundCells = new Array();

    return context.sync().then(function () {
      
      for(var i = 0; i < rng.formulas.length; i++) {
        var f = rng.formulas[i];
        for(var j = 0; j < f.length; j++) {
          if (/^=foo\(.*\)/i.test(f[j])) {
            foundCells.push({i: i,j: j,val: f[j]});
          }
          
        }
      }
      
      document.write(JSON.stringify(foundCells,null,4));

      return context.sync();
    });
  });
}); 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)