2017-06-08 6 views
0

私はthisドキュメントを使用しています。 JavaScriptで文書内の28文字の各インスタンスを識別したいと思います。私はそれについて行く2つの方法があると思っていますが、進める方法がわかりません。JavaScript/GoogleAppsは、28文字を含むテーブル内のすべてのセルを検索します。

  1. のみ文書

  2. スペースなしで28文字のすべての文字列のための文書全体を検索する方法はあります内のすべてのテーブル内の特定のセルを見てする方法はありますか?

最終的な目標は、URLに追加してから、作成URLから画像をインポートすることです。現在、私が持っているスクリプトは、このすべてを行うことができますが、私はそれがここで鍵を検出持っているとは対照的に、キーを選択する必要がlink

function getmyImage() { 
var doc= DocumentApp.getActiveDocument() 
var selection = doc.getSelection() 
var tables1 = doc.getBody().getTables() 
var table1 = tables1[0].getChild(0).asTableRow().getCell(1).getText() 
var elements = selection.getRangeElements() 


// Report # elements. For simplicity, assume elements are paragraphs 

if (elements.length > 1) { 
} 
else { 
    var element = elements[0].getElement(); 
var startOffset = elements[0].getStartOffset();  // -1 if whole element 
    var endOffset = elements[0].getEndOffsetInclusive(); // -1 if whole element 
    var id = element.asText().getText();  // All text from element 
    // Is only part of the element selected?} 


var image = DriveApp.getFileById(id).getBlob() 


var totaltables = doc.getBody().getTables().length 
var tables = doc.getBody().getTables() 

for(var j = 0; j < totaltables; ++j) { 
    var rows = tables[j].getNumChildren(); 

    for(var i = 0; i < rows; ++i) { 
    var krow = tables[j].getChild(i).asTableRow() 
    var kcell = krow.getCell(1) 
    var ksearch = kcell.getText() 


    if (ksearch == id){ 
    var pimg = kcell.appendParagraph("").appendInlineImage(image).setHeight(400).setWidth(500) 

    } 
    } 
} 
}} 
+0

は、あなたがGoogleドキュメントのドキュメントを読みました新しいコードはhttps:?うん – xsami

+1

を//developers.google.com/sheets/api/quickstart/js!すべてのエクササイズを試しました。元の質問に現在使用しているコードを追加しました。 –

+0

私は少し進歩を遂げました、私はこれまで回答セクションに掲載しました。 –

答えて

0

張り出すはアップデートです。私はそれがただ一つの要素だとテーブルを検索する方法を見つけましたが、すべてのセルとすべてのテーブルでどのように反復するかはわかりません。ここで

function onOpen() { 
    DocumentApp.getUi() 
    .createMenu("Menu ") 
    .addItem("Insert Image","getMyImage") 
    .addToUi() 
    } 

function getMyImage() { 
var doc = DocumentApp.getActiveDocument(); 

var body = doc.getBody(); 

var table = body.getTables(); 

for (var i = 0; i < table.length; i++){ 
    var imageId = table[i].getChild(0).asText().getText(); 

    if (imageId.length == 28) { 

    var file = DriveApp.getFileById(imageId); 

    var image = file.getBlob(); 

    var link = file.getUrl(); 

    var appendImage = table[i].getChild(0).asTableRow().clear().appendTableCell().appendImage(image) 
    .setHeight(400).setWidth(500).setLinkUrl(link); 


    }}} 
関連する問題