我有一个文档,我需要找到一个文本或单词,每当我运行一个函数时,如果找到一个单词或文本,选择必须转到下一个。如果它在最后,它应该像循环记录中的find选项一样以循环的方式让我顶部。如何在Google文档中进行封闭式搜索?
有没有办法做到这一点?我知道findText(searchPattern, from)
但我不明白如何使用它。
我有一个文档,我需要找到一个文本或单词,每当我运行一个函数时,如果找到一个单词或文本,选择必须转到下一个。如果它在最后,它应该像循环记录中的find选项一样以循环的方式让我顶部。如何在Google文档中进行封闭式搜索?
有没有办法做到这一点?我知道findText(searchPattern, from)
但我不明白如何使用它。
DocumentApp中有几个包装和类。他们帮助处理文件的内容。
有必要仔细了解他们有责任。在你的情况下,下面的代码应该工作正常:
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);
}
它寻找模式。如果body.findText
返回undefined
,那么它将设置在文档的顶部。
我有一个主题关于这个问题https://gist.github.com/oshliaer/d468759b3587cfb424348fa722765187
@ user3436029这个答案对您有帮助吗?通常标记为已解决。 – oshliaer
问题在哪里?这几乎就像一个请求格式化,这不是这个社区的性质。如果你试图做某件事情,它不起作用,并且你试图修复/调试它。发布您的代码,您收到的任何错误,以及您尝试过的信息。 –
你可以简单地使用Javascript substring函数,你可以包含你的文档及其格式吗? – Amir