итерация данных листа Google для создания слайда Google - PullRequest
0 голосов
/ 29 мая 2019

У меня есть данные в листе Google, которые я хочу использовать для создания слайда Google.Я успешно создал рабочий шаблон для первой строки моего листа Google.Это берет копию существующего шаблона слайда, а затем создает шестиугольную форму и наносит ее на слайд, управляемый данными на слайде.Однако мне нужен сценарий для итерации или циклического перебора строк / диапазона листа и заполнения слайда несколькими шестиугольниками.

[Данные Google Sheet] [1] [Желаемый результат] [2]

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

  SpreadsheetApp.getUi()
      .createMenu('Templates')
      .addItem('HeatMap', 'createNewCase')
      .addToUi();
}

  function createNewCase(input) {
   var category = input
   var ui = SpreadsheetApp.getUi();

    // get active spreadsheet
    var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var activeSheet = activeSpreadsheet.getActiveSheet();



    //Get active cell

    var sourceRow = activeSheet.getActiveCell().getRow();



    // Read case variables

    var sourceTeam = activeSheet.getRange('A' + sourceRow).getValue();
    var sourceRisk = activeSheet.getRange('C' + sourceRow).getValue();
    var sourceRef = activeSheet.getRange('B' + sourceRow).getValue();
    var sourceWidth = activeSheet.getRange('E' + sourceRow).getValue();
    var sourceHeight = activeSheet.getRange('F' + sourceRow).getValue();
     var sourceColour = activeSheet.getRange('G' + sourceRow).getValue();



    // Message prompt

  var userChoice = ui.alert("You are about to generate a Risk Heatmap for " + sourceTeam +"\n\nDo you wish to continue?\n\n",ui.ButtonSet.YES_NO);
    if (userChoice == ui.Button.NO) {
      ui.alert("Terminating script");
      return;
    } 

    //Get todays date 

    var nowShort = Utilities.formatDate(new Date(), "Europe/London", "yyMMdd");
    var nowFormattedDateTime = Utilities.formatDate(new Date(), "Europe/London", "EEE d MMM yyyy HH:mm");



    //Set case document filename

    var newFilename = sourceTeam + " Risk Heatmap"

    //Get template folder

    var templateFolder = DriveApp.getFolderById("xxxxxx");

    // Get case Template document

    var docTemplate = DriveApp.getFileById("xxxxxxx"); 
    var caseDocument = docTemplate.makeCopy(newFilename);       
    var caseDocumentID = caseDocument.getId();
    var caseSlide = SlidesApp.openById(caseDocumentID);
    var activeSlide = caseSlide.getSlideById('xxxxxxx')
    var shape = activeSlide.insertShape(SlidesApp.ShapeType.HEXAGON,sourceWidth,sourceHeight,80,40);
    var textRange = shape.getText();
    var textCol =shape.getFill().setSolidFill(sourceColour)
    var insertedText = textRange.appendText(sourceRef +" - "+ sourceRisk);
    insertedText.getTextStyle()
    .setForegroundColor('#000000')
    .setFontSize(8)


    var caseProcess = caseSlide.replaceAllText("%TEAM NAME%", sourceTeam);
    var dateTime = caseSlide.replaceAllText("%DATE%", nowFormattedDateTime);


  // Record Case Document link      
    activeSheet.getRange('H' + (sourceRow)).setFormula('=HYPERLINK("' + caseDocument.getUrl() + '", "Risk Heatmap")');

  }```


  [1]: https://i.stack.imgur.com/tPCuI.png
  [2]: https://i.stack.imgur.com/XVx8M.png
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...