2016-04-25 15 views
1

Ich habe ein Dokument, wo ich einen Text oder ein Wort finden muss, jedes Mal, wenn ich eine Funktion ausführe, muss die Auswahl zum nächsten gehen, wenn ein Wort oder ein Text gefunden wird. Wenn es am Ende ist, sollte es mich auf runde Art führen, genau wie die Option im Notizblock.Wie mache ich eine geschlossene Suche in Google Text & Tabellen?

Gibt es eine Möglichkeit, es zu tun?

Ich weiß über findText(searchPattern, from), aber ich verstehe nicht, wie man es benutzt.

+0

Wo ist die Frage? Dies ist fast wie eine Anfrage formatiert, die nicht die Art dieser Gemeinschaft ist. Wenn Sie versucht haben, etwas zu tun, funktioniert es nicht und Sie haben versucht, es zu reparieren/zu debuggen. Veröffentlichen Sie Ihren Code, alle Fehler, die Sie erhalten, und Informationen darüber, was Sie versucht haben. –

+0

Sie können einfach Javascript Teilzeichenfunktion verwenden, können Sie Ihr Dokument und sein Format einbeziehen? – Amir

Antwort

1

In der DocumentApp gibt es mehrere Wrapper und Klassen. Sie helfen beim Arbeiten mit dem Inhalt der Datei.

Es ist notwendig, sorgfältig zu verstehen, was sie verantwortlich sind. In Ihrem Fall sollte der folgende Code einwandfrei funktionieren:

function myFunctionDoc() { 

    // sets the search pattern 
    var searchPattern = '29'; 

    // works with current document 
    var document = DocumentApp.getActiveDocument(); 

    // detects selection 
    var selection = document.getSelection(); 

    if (!selection) { 
     if (!document.getCursor()) return; 
     selection = document.setSelection(document.newRange().addElement(document.getCursor().getElement()).build()).getSelection(); 
    } 
    selection = selection.getRangeElements()[0]; 

    // searches 
    var currentDocument = findNext(document, searchPattern, selection, function(rangeElement) { 
     // This is the callback body 
     var doc = this; 
     var rangeBuilder = doc.newRange(); 
     if (rangeElement) { 
      rangeBuilder.addElement(rangeElement.getElement()); 
     } else { 
      rangeBuilder.addElement(doc.getBody().asText(), 0, 0); 
     } 
     return doc.setSelection(rangeBuilder.build()); 
    }.bind(document)); 

} 

// the search engine is implemented on body.findText 
function findNext(document, searchPattern, from, callback) { 
    var body = document.getBody(); 
    var rangeElement = body.findText(searchPattern, from); 
    return callback(rangeElement); 
} 

Es sucht nach dem Muster. Wenn body.findTextundefined zurückgibt, wird es auf das Dokument gesetzt.

Ich habe einen Kern über das Thema https://gist.github.com/oshliaer/d468759b3587cfb424348fa722765187

+1

@ user3436029 Diese Antwort hat Ihnen geholfen? Normalerweise als aufgelöst markiert. – oshliaer

Verwandte Themen