我正在玩一个动态标牌项目,需要一些帮助来完成幻灯片中的一些GAS。我要做的就是用Google电子表格中(一个单元格)的文本替换活动演示文稿中的某些文本。我认为我的Request语法正确,但不确定如何在当前演示文稿上执行Request,因为我尝试过的一切似乎都失败了。任何帮助将非常感激。下面的代码包括完整的脚本,该脚本复制了一些幻灯片等(并且正在工作)-这只是我需要帮助的最后一个请求部分...
function updateRBFixtures() {
var srcPresentationId = "1zRvc0H64yvxxxxxxxxxxxxxznmb2usZ_4w6bvRA";
var copysrcSlideIndex = 0;
var copydstSlideIndex = 1;
var src = SlidesApp.openById(srcPresentationId).getSlides()[copysrcSlideIndex];
SlidesApp.getActivePresentation().insertSlide(copydstSlideIndex, src);
var selection = SlidesApp.getActivePresentation().getSelection();
var slide = SlidesApp.getActivePresentation().getSlides()[0];
slide.remove();
var dataRangeNotation = 'slideInfo!B2:B2';
var value =
SpreadsheetApp.openById("1jiYxxxxxxxxxxxxxxMqtwXnc").getRange(dataRangeNotation).getValues();
requests = [{
replaceAllText: {
containsText: {
text: '{fixtureOneMatch}',
matchCase: false
},
replaceText: value
}
}];
}
这个答案怎么样?
getValues()
返回二维数组。在您的情况下,该值是从一个单元格中检索的。这样就可以使用了getValue()
。saveAndClose()
。requests
未使用。当以上几点反映到您的脚本时,它将变为以下内容。
SlidesApp.getActivePresentation().insertSlide(copydstSlideIndex, src);
var selection = SlidesApp.getActivePresentation().getSelection();
var slide = SlidesApp.getActivePresentation().getSlides()[0];
slide.remove();
var dataRangeNotation = 'slideInfo!B2:B2';
var value =
SpreadsheetApp.openById("1jiYxxxxxxxxxxxxxxMqtwXnc").getRange(dataRangeNotation).getValues();
requests = [{
replaceAllText: {
containsText: {
text: '{fixtureOneMatch}',
matchCase: false
},
replaceText: value
}
}];
至:
var s = SlidesApp.getActivePresentation();
s.insertSlide(copydstSlideIndex, src);
s.getSlides()[0].remove();
s.saveAndClose();
var dataRangeNotation = 'slideInfo!B2:B2';
var value = SpreadsheetApp.openById("###").getRange(dataRangeNotation).getValue();
var requests = [{
replaceAllText: {
containsText: {
text: '{fixtureOneMatch}',
},
replaceText: value,
}
}];
Slides.Presentations.batchUpdate({requests: requests}, s.getId());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句