У меня есть данные в листе 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