2017-06-08 92 views
0

我正在使用this文檔,我不確定它是否可能。我想用JavaScript來識別文檔中每個28個字符的實例。我認爲有兩種方法可以解決,但不知道如何繼續。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

你閱讀的文檔,谷歌文檔的https://developers.google.com/sheets/api/quickstart/js – xsami

+1

是啊!嘗試了所有的練習。我已將我目前使用的代碼添加到原始問題中。 –

+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); 


    }}} 
相關問題