如何通过Apps Script将Google Slides生成的椭圆图形分组?
解决Google Slides Apps Script生成椭圆后无法编程组合的问题
要实现将生成的椭圆组合成组,你需要先收集所有创建的形状对象,再调用幻灯片的group()方法完成组合。以下是修改后的完整代码:
function createColorCodeLabelsSlide() { var objSheetFile = retrieveFileObject(strSheetsFileName); var ss = SpreadsheetApp.open(objSheetFile); var sheet = ss.getSheetByName(strTargetSheetName); var data = sheet.getDataRange().getValues(); var myPres = SlidesApp.getActivePresentation(); var newSlide = myPres.appendSlide(); // 初始化数组存储要组合的形状 var shapesToGroup = []; for (var i=1; i < data.length; i++) { var colorCode = data[i][11]; var myNewShape = newSlide.insertShape(SlidesApp.ShapeType.ELLIPSE,data[i][3],data[i][2],16,16); myNewShape .getText() .setText(colorCode); myNewShape .getText() .getTextStyle() .setFontFamily("Arial") .setFontSize(12); myNewShape .getText() .getParagraphStyle() .setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER); myNewShape .getFill() .setSolidFill(255,255,255); // 将每个生成的椭圆加入数组 shapesToGroup.push(myNewShape); } // 组合所有形状(确保数组有至少两个元素才执行) if (shapesToGroup.length >= 2) { newSlide.group(shapesToGroup); } }
关键修改说明
- 新增
shapesToGroup数组,用于存储循环中生成的每一个椭圆形状对象。 - 循环内部每次创建椭圆后,通过
push()方法将对象加入数组。 - 循环结束后,调用幻灯片的
group()方法,传入形状数组即可完成组合。添加长度判断是为了避免因无形状或单个形状导致的错误。
内容的提问来源于stack exchange,提问作者BJS
相关产品推荐
相关产品推荐

