2017-06-08 55 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); 


    }}} 
相关问题