Есть ли ошибка в Javascript API Excel, касающаяся формулы в таблице?

#javascript #excel #api

Вопрос:

Я активно работаю над надстройками в Excel, используя Javascript/TypeScript Angular.

Я пытался просто добавить формулу с помощью кнопки (здесь мои надстройки окна Excel) в новую таблицу строк, используя свой код здесь :

 public Somme(infoType:string, infoName:string, sheetSource?:Excel.Worksheet) {
    
    // Initialisation du nom (max 31 - 5 (Table) char)
    var operationName = "SOMME";

    // Initialisation des pages Source et Direction
    Excel.run(function(context:Excel.RequestContext) {
      // Feuille Excel de données IFC Elements
      if(!sheetSource) {
        sheetSource = context.workbook.worksheets.getFirst();
      }
      var sheetDirection = context.workbook.worksheets.getItemOrNullObject(operationName);

      // Verification qu'une opération identique n'a pas déjà été effectué.
      return context.sync().then(
        function () {
          if (sheetDirection.isNullObject) sheetDirection = context.workbook.worksheets.add(operationName);
          sheetDirection.activate();
          sheetDirection.load("name");
          return context.sync();
        }
      ).then(
        function () {
          var table = sheetDirection.tables.getItemOrNullObject(sheetDirection.name   "Table");
          sheetSource.load("name");
          return context.sync(table);
        }
      ).then(
        function(table) {
          if(table.isNullObject) {
            table = sheetDirection.tables.add("A1:B1",true);
            table.getHeaderRowRange().values = [["QUERY","RESULT"]]
            table.name = sheetDirection.name   "Table";
          }
          console.log('=SOMME.SI.ENS(Sheet1!F:F;Sheet1!D:D;"'  infoName  '";Sheet1!E:E;"'  infoType  '")');
          // Ajout des formules
          var newRow = table.rows.add(null,[[infoName   "->"   infoType,'']]);

          newRow.getRange().getLastCell().formulasLocal = [['=SOMME.SI.ENS(' sheetSource.name '!F:F;' sheetSource.name '!D:D;"'  infoName  '";Sheet1!E:E;"'  infoType  '")']];
        
          // AutoFit
          if (Office.context.requirements.isSetSupported("ExcelApi", "1.2")) {
            sheetDirection.getUsedRange().format.autofitColumns();
            sheetDirection.getUsedRange().format.autofitRows();
          }
          return context.sync();
        }
      ).catch(function (error) {console.log(error)});
    }.bind(this));
  }
 

но проблема в том, что когда я пытаюсь выполнить функцию в другой раз, чтобы добавить новую строку в свою таблицу, все формулы обновляются с помощью новой : после добавления второй строки с помощью функции

я не знаю, почему и что не так в моем коде, я новичок в API Office и рад любой помощи !

Спасибо, что прочитали меня.