Google apps script 为幻灯片设置特定ID

Google apps script 为幻灯片设置特定ID,google-apps-script,google-slides,Google Apps Script,Google Slides,我有一个谷歌幻灯片主文档,从中我将特定幻灯片复制到另一个谷歌幻灯片文档中。 但是当我复制幻灯片时,我想给它一个特定的ID(,例如幻灯片编号-001) 我通过复制幻灯片来实现这一点,然后用我想要的ID复制副本,然后删除副本。这是可行的,但我认为这远不是理想的解决方案 如果有更好的方法,你能帮我吗? 我找不到任何用于此的函数,例如setObjectID()。很抱歉,没有专门设置幻灯片ID的方法。此外,不建议设置对象的幻灯片ID,因为它已在后台自动创建,这将违反直觉,同时也会浪费资源。这就是为什么它没

我有一个谷歌幻灯片主文档,从中我将特定幻灯片复制到另一个谷歌幻灯片文档中。 但是当我复制幻灯片时,我想给它一个特定的ID(
,例如幻灯片编号-001

我通过复制幻灯片来实现这一点,然后用我想要的ID复制副本,然后删除副本。这是可行的,但我认为这远不是理想的解决方案

如果有更好的方法,你能帮我吗?
我找不到任何用于此的函数,例如
setObjectID()

很抱歉,没有专门设置幻灯片ID的方法。此外,不建议设置对象的幻灯片ID,因为它已在后台自动创建,这将违反直觉,同时也会浪费资源。这就是为什么它没有作为一种方法提供

我建议创建一个字典来保存幻灯片编号和幻灯片ID的配对

我创建了一个使用该思想的示例代码

代码:
函数集字典(){
//我有5张幻灯片作为样本
var presentation=SlidesApp.getActivePresentation();
var slides=presentation.getSlides();
var字典={};
//将对象ID设置为键“Slide_num-”的值
slides.forEach(函数(幻灯片、索引){
字典[“Slide_num-”+paddleadingzeros(索引+1,3)]=Slide.getObjectId();
});
//在您的情况下,复制幻灯片后,将值“slide.getObjectId()”指定给键“slide_num-”
//样本:
//将第五张幻灯片背景设置为红色
var slide=presentation.getSlideById(字典[“slide_num-005”]);
log(slide.getBackground().setSolidFill(255,0,0));
}
函数padLeadingZeros(数量、大小){
//函数,该函数根据大小向数字追加0
//当num为“1”且大小为“3”时返回“001”
var s=num+“”;
而(s.长度<尺寸){
s=“0”+s;
} 
返回s;
}
这样做的好处是减少了API调用,使其更独立于API

请参阅类幻灯片中可用方法列表的参考

参考:

如果这不是您想要/需要的解决方案,我真诚道歉。

非常感谢您的回答和信息。我是谷歌开发者的新手,所以,这对我很有帮助。我真的很喜欢你的想法,我认为这是一个很好的解决办法。我将在脚本中实现它,因为它比我的解决方案好得多。再次感谢你,非常感谢。嗨@Martin,谢谢你的感谢。Stackoverflow社区非常乐意帮助您解决这些问题。祝你的项目好运。
function setDictionary() {
  // I have 5 slides as sample
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();
  var dictionary = {};

  // Set Object ID as value to key "Slide_num-<number>"
  slides.forEach(function (slide, index) {
    dictionary["Slide_num-" + padLeadingZeros(index + 1, 3)] = slide.getObjectId();
  });
  // In your case, after copying the slide, assign the value "slide.getObjectId()" to the key "Slide_num-<number>"

  // Sample: 
  // Sets 5th slide background to red 
  var slide = presentation.getSlideById(dictionary["Slide_num-005"]);
  Logger.log(slide.getBackground().setSolidFill(255,0,0));
}

function padLeadingZeros(num, size) {
  // Function that appends 0s to the number based on the size
  // Returns "001" when num is "1" and size is "3"
  var s = num + "";
  while (s.length < size) {
    s = "0" + s;
  } 
  return s;
}