Google脚本文档以斜体显示附加文本

时间:2014-05-29 13:17:53

标签: javascript google-apps-script google-docs

我正在使用具有重复模式的Google电子表格创建报告。我想让每个文本块的第一行用斜体显示。

文字如下:

Re: Blah Blah Blah
Blah, blah blahblahblah; blah blah blah; blahblah blah.
[blah blah 10 hours at $250]

我想要从Re:到\n的所有内容都是斜体。这种模式在整个文件中重复出现。

这是我目前所拥有的:

  var bodyText = body.editAsText();
  var stuff = "";
  for (i=0; i<ParNormal.length; i++){
    if (ParNormal[i].indexOf("Re: ")<0){
      bodyText.appendText(ParNormal[i]+'\n').setItalic(true);
    } else {
      bodyText.appendText(ParNormal[i]+'\n');
    }
  }

每个ParNormal数组项包含一行文本,文本块之间的空格也包含在数组中(在上例中,ParNormal[3]==" "

我上面的代码不起作用。该文档似乎表明appendText返回一个文本元素。所以至少我希望所有内容都是斜体,如果不是我刚刚附加的文本。附加段落似乎是最容易实现的方法,但它会在每个段落的末尾添加回车,这会使演示文稿变得混乱。

ParNormal看起来像这样:

[1]=="Re: Blah Blah Blah"
[2]=="Blah, blah blahblahblah; blah blah blah; blahblah blah."
[3]=="[blah blah 10 hours at $250]"
[4]==" "
[5]=="Re: Blah Blah"
[6]=="blahblah; blah."
[7]=="[blah blah blah 20]";
[8]==" "

等等。

1 个答案:

答案 0 :(得分:0)

这可能就是你要找的东西。尽我所能使用你的var名字。你可以随意地推断出你需要的东西。

function someFunction(){
  var d = DocumentApp.getActiveDocument();
  var body = d.getBody(); 
  var parNormal = body.editAsText();
  var index = -1;
  var textFound = body.findText("Re: ");
  var text = textFound.getElement().asText();

  while(true)
 {
   index = parNormal.getText().indexOf("Re: ",index+1);
   if(index == -1)
     break;
   else {
        parNormal.setItalic(index+4, index+text.getText().length-1, true);
   }
 }