Javascript officejs中Excel函数解析

Javascript officejs中Excel函数解析,javascript,excel,office-js,exceljs,Javascript,Excel,Office Js,Exceljs,我想写一个office js excel插件 解析使用的范围以查找“=foo(arg)”形式的所有公式,并 用事件的地址和arg的计算值填充数组。例如,arg可以是一个单元格引用,如$a$1 我管理了第一部分,但如何实现第二部分?我知道office js不允许评估。作为评估的变通方法,我考虑将“=foo(arg)”替换为“=arg”,重新加载该值,然后将原始“=foo(arg)”放回单元格 有没有更干净的解决办法? 使用上述解决方案,我将如何跟踪要加载和修改的对象 查找foo()的我的代码 Of

我想写一个office js excel插件

  • 解析使用的范围以查找“=foo(arg)”形式的所有公式,并
  • 用事件的地址和arg的计算值填充数组。例如,arg可以是一个单元格引用,如$a$1
  • 我管理了第一部分,但如何实现第二部分?我知道office js不允许评估。作为评估的变通方法,我考虑将“=foo(arg)”替换为“=arg”,重新加载该值,然后将原始“=foo(arg)”放回单元格

    有没有更干净的解决办法? 使用上述解决方案,我将如何跟踪要加载和修改的对象

    查找foo()的我的代码

    Office.onReady(函数(){
    Excel.run(函数(上下文){
    var sheet=context.workbook.worksheets.getActiveWorksheet();
    var rng=sheet.getUsedRange();
    rng.荷载(“公式”);
    var foundCells=新数组();
    返回context.sync().then(函数(){
    对于(变量i=0;i
    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();
        });
      });
    });