Как создать 4 элемента массива с помощью скриптов Google - PullRequest
0 голосов
/ 07 мая 2019

У меня есть электронная таблица с проектами с именами и присвоенными значениями для каждого имени.

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

У меня естьпробовал перебирать каждую строку, но это неэффективно.

Другая идея, которая у меня была, - создать объект для каждого имени (например, баланс) и добавить к нему.

Project | Person1 | Weight1 |Team1 | Person2 | Weight2 | Team2|....     
--------------------------------------------------------------------
 p1       Bill        .5     Tech      Alice     1      Analytical
 p2       Larry        1   Analytical  Bill     .5       Tech
 p3       Joe          2     Tech      Larry     1       Tech
....
nth proj. 

Мои ожидаемые результаты:

[p1,Bill,.5,Tech],[p1,Alice,1,Analytical],[p2,Larry,1,Analytical],[p2,Bill,.5,Tech]...

1 Ответ

0 голосов
/ 08 мая 2019

Вот способ создания массива объектов или, если вы хотите, приписанных значений.

function arrayOfObjects() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('DocData');
  var rg=sh.getDataRange()
  var vA=rg.getValues();
  var lA=vA[0];
  var rA=[];
  for(var i=0;i<vA.length;i++) {
    var rObj={};
    for(var j=0;j<vA[i].length;j++) {
      rObj[lA[j]]=vA[i][j];
    }
    rA.push(rObj);
  }
  return rA;
}

function displayArray(rA) {
  var html="<style>td,th{border:1px solid black;}</style><table>";
  for(var i=1;i<rA.length;i++) {
    if(i==1) {
      html+=Utilities.formatString('<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>',rA[i].project,rA[i].type,rA[i].weight,rA[i].first);
    }else{
      html+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',rA[i].project,rA[i].type,rA[i].weight,rA[i].first);
    }
  }
  html+='</table>';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'My Object');
}

function runOne() {
  displayArray(arrayOfObjects());
}

Это моя таблица данных: (верхняя строка - метки, вторая - заголовки, остальные - данные)

enter image description here

Это мой вывод диалога:

enter image description here

Я часто использую ярлыкив моих объектах, которые обеспечивают корреляцию между значениями в электронных таблицах и идентификаторами в HTML-элементы для веб-приложений.Вам не нужно делать это, если вы не хотите.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...