2017-11-15 16 views
0

私は現在StackOverflowユーザーの助けを借りて質問をランダムに生成し、文書の最後に追加した後、すべての質問を削除することができる文書を持っています投稿されました。これは、水平ルールのすべてを削除することに基づいています。あなたはまた、それが現在ここに何を見ることができますLINK TO GDRIVE文書上の2点間の内容の追加と削除

https://imgur.com/QVrOZKu

はしかし、私は今だけで、特定のポイントの後にコンテンツを追加したいしたい文書例&コードを含むGDriveに

リンク2つの特定のポイント間のコンテンツのみを削除することができます。下の画像では、水平方向の2つのルールが表示され、 のコンテンツを追加/削除したいと考えています。

enter image description here

画像における最初の水平ルールは、文書内の第3の水平ルールです。

どのようにして2点間でコンテンツを削除して追加することができますか?私は子のインデックスを使用しようとしましたが、悲惨に失敗しました。

答えて

1

これはDeleting all content down from the second horizontal line in a documentに似ていますので、私は解決策を適用します。最初の関数は3番目と4番目の行の間の段落を削除します。私たちが段落をループするとき、水平線を数えます。カウントが3に達すると、次の段落の削除を開始します。 3を超えると、ループを停止します。

function deleteFrom3to4() { 
    var body = DocumentApp.getActiveDocument().getBody(); 
    body.appendParagraph(''); 
    var para = body.getParagraphs(); 
    var ruleCount = 0; 
    for (var i = 0; i < para.length - 1; i++) { 
    if (para[i].findElement(DocumentApp.ElementType.HORIZONTAL_RULE)) { 
     ruleCount++; 
    } 
    else if (ruleCount == 3) { 
     body.removeChild(para[i]); 
    } 
    if (ruleCount > 3) { 
     break; 
    } 
    } 
} 

これは第3水平線の後に段落を挿入します。再度、3行目が見つかるまでループします。そのあとの段落を挿入し(子インデックスでbody.getChildIndex(para[i]) + 1と表示)、停止します。

function insertAfter3() { 
    var body = DocumentApp.getActiveDocument().getBody(); 
    body.appendParagraph(''); 
    var para = body.getParagraphs(); 
    var ruleCount = 0; 
    for (var i = 0; i < para.length - 1; i++) { 
    if (para[i].findElement(DocumentApp.ElementType.HORIZONTAL_RULE)) { 
     ruleCount++; 
    } 
    if (ruleCount == 3) { 
     body.insertParagraph(body.getChildIndex(para[i]) + 1, "Here is a new paragraph"); 
     break; 
    } 
    } 
} 
+0

ちょうど週末から家に帰ったので、後悔して申し訳ありません。これは完全に感謝:) –

関連する問題