【发布时间】:2013-12-22 16:27:40
【问题描述】:
在documentation sample 之后,我正在尝试创建一个函数来搜索谷歌文档中的数字列表,如果找到它,则将新项目添加到列表中。我的代码适用于字符串(感谢@Serge insas 以前的帮助),但不适用于段落对象。我知道我可以获取段落文本并将其添加到 listItem,但随后我失去了格式。有没有办法插入一个保留所有格式的段落? (我知道我可以使用var newElement = child.getParent().insertListItem(childIndex, elementContent.getText()) 插入文本而不进行文字格式化)
这里是代码:
function test() {
var targetDocId = "1A02VhxOWLUIdl8LTV1tt2S1yASDbOq77VbsUpxPa6vk";
var targetDoc = DocumentApp.openById(targetDocId);
var body = targetDoc.getBody();
var elementContent = targetDoc.getChild(2); // a paragraph with its formating
var childIndex = 0;
for (var p= 0; p< targetDoc.getNumChildren(); p++) {
var child = targetDoc.getChild(p);
if (child.getType() == DocumentApp.ElementType.LIST_ITEM){
while(child.getType() == DocumentApp.ElementType.LIST_ITEM){
child = targetDoc.getChild(p)
Logger.log("child = " + child.getText())
childIndex = body.getChildIndex(child);
Logger.log(childIndex)
p++
}
child = targetDoc.getChild(p-2);
var listId = child.getListId();
if (child.getText() == '') {
childIndex = childIndex -1;
}
Logger.log(childIndex)
var newElement = child.getParent().insertListItem(childIndex, elementContent);
newElement.setListId(child);
var lastEmptyItem = targetDoc.getChild(childIndex +1).removeFromParent();
break;
}
这是我的 targetDoc 的屏幕截图(注意第二项,Paragraph):
【问题讨论】:
标签: google-apps-script google-docs