Установить значение ячейки с помощью getCell () в таблице Excel JS - PullRequest
0 голосов
/ 14 июня 2019

Я застрял на этом и не могу найти ответ ни на одном веб-сайте.Я пытаюсь установить значение ячейки, но получаю следующую ошибку:

Свойство "значения" не загружено.Пожалуйста, вызовите метод загрузки и context.sync () ...

Я понимаю, что мне нужно вызвать метод загрузки, но ни одна из загрузок, которые я пробовал, не работает.

Excel.run(function (context) {
   var sheet = context.workbook.worksheets.getActiveWorksheet();
   var FilledTable = sheet.tables.getItem(randomId);
   FilledTable.rows.load("items"); //Tried this and many others...
   FilledTable.getDataBodyRange().load("values");

   return context.sync().then(function () {
      FilledTable.getRange().getCell(1,0).values = [[ "test" ]]; //Trying to do this! 
   });
}

Спасибоза любую помощь !!

ОБНОВЛЕНИЕ

Я пытаюсь зациклить первый столбец моей таблицы и установить гиперссылку, используя уже установленное значение.

Пример: полный пример

Excel.run(function (context) {
  var sheet = context.workbook.worksheets.getActiveWorksheet();
  var filledTable = sheet.tables.getItem(randomId);
  var usedRange = filledTable.getRange().load("values, rowCount");

  return context.sync().then(function () {
     var keyPos = headers.indexOf("Key");
     if(keyPos > -1){
        for(var z = 1; z < usedRange.rowCount; z++){
           usedRange.values[z][0].hyperlink = {
              address: `url` + usedRange.values[z][0],
              documentReference: null,
              screenTip: null,
              textToDisplay: usedRange.values[z][0],
            };
          }
       }
     });
   })

1 Ответ

1 голос
/ 17 июня 2019

Мне удалось исправить мою проблему, используя getRow и getColumn вместо значений! Вот фиксированный код:

           Excel.run(function (context) {
              var sheet = context.workbook.worksheets.getActiveWorksheet();
              var filledTable = sheet.tables.getItem(randomId);
              var usedRange = filledTable.getRange().load("values, rowCount");

              return context.sync().then(function () {
                var keyPos = headers.indexOf("Key");
                if(keyPos > -1){
                  for(var z = 1; z < usedRange.rowCount; z++){
                    usedRange.getRow(z).getColumn(keyPos).hyperlink = {
                      address: `url` + usedRange.values[z][keyPos],
                      documentReference: null,
                      screenTip: null,
                      textToDisplay: usedRange.values[z][keyPos],
                    };
                  }
                }
              });
            })
...