我正在使用具有重复模式的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]==" "
等等。
答案 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);
}
}