2

我的脚本搜索演示文稿中的一张特定幻灯片。然后它从第一个页面元素中获取文本。这个页面元素是一个只有一个单词的形状。在此之后,当我在此页面元素文本之前和之后放置字符串时,文本中有一个中断。

function readShapeText() {
   var presentation = SlidesApp.getActivePresentation();
   var slides = presentation.getSlides();
   
   for (i = 0; i < slides.length; i++) {
    
       if(slides[i].getObjectId() == 'mySlideId'){
 
         var pageElement = slides[i].getPageElements()[0].asShape().getText().asString();
          
       }
   }
    
   var myModifiedElement = "My_" + pageElement + "_is_cool";
}

输出中断,但我需要一行:

My_TestElement

_很酷

我怎样才能消除或抑制休息?有没有更好的方法来查找特定幻灯片而不使用像presentation.openSlideById(xxxxxx)这样的“for loop”fe?

4

1 回答 1

3

这些答案怎么样?

Q1:如何消除或抑制中断?

似乎总是给出文本的结尾\n。这也可以从 检索的值中看出Slides.Presentations.get()。因此,如果您想在没有 的情况下检索值\n,可以使用replace("\n", "").

Q2:有没有更好的方法来查找特定幻灯片而不使用像presentation.openSlideById(xxxxxx)这样的“for loop”fe?

下面的示例脚本怎么样?它使用 检索特定幻灯片filter(),因为objectId数组中包含 的键。并且replace("\n", "")也被使用了。

function readShapeText() {
  var mySlideId = "mySlideId"; // Please input this.
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();
  var slide = slides.filter(function(e){return e.getObjectId() == mySlideId})[0];
  var pageElement = slide.getPageElements()[0].asShape().getText().asString().replace("\n", "");
  var myModifiedElement = "My_" + pageElement + "_is_cool";
  Logger.log(myModifiedElement)
}

如果我误解了你的问题,我很抱歉。

于 2017-11-14T00:25:06.743 回答