Search Dialog Sample using TextFinder with Google Apps Script

Gists

This is a sample script for the search dialog using TextFinder with Google Apps Script. If this sample script could help to indicate the possibility of TextFinder, I’m glad.

Demo

In this demonstration, the value of test is searched. When "NEXT" is clicked, the next searched value is activated. When "PREVIOUS" is clicked, the previous searched value is activated. The search can be done for all sheets in the Google Spreadsheet.

Sample script

When you use this script, please copy and paste the following script to the container-bound script of Google Spreadsheet, and run the function of run(). By this, a dialog is opened to the Spreadsheet.

function searchText(searchValue, c) {
  const ranges = SpreadsheetApp.getActiveSpreadsheet()
    .createTextFinder(searchValue)
    .findAll();
  if (c < ranges.length) {
    ranges[c].activate();
    return c;
  }
  return --c;
}

function run() {
  const htmlStr = `
<input type="text" id="searchText" name="searchText">
<button id="previous" onclick="googleScript(c > 0 ? c - 1 : 0)">PREVIOUS</button>
<button id="next" onclick="googleScript(++c)">NEXT</button>
<script>
let c = -1;
const googleScript = (i) =>
  google.script.run.withSuccessHandler(cc => c = cc).searchText(document.getElementById("searchText").value, i);
</script>
`;
  const htmlObj = HtmlService.createHtmlOutput(htmlStr)
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
    .setWidth(350)
    .setHeight(50);
  SpreadsheetApp.getUi().showModelessDialog(htmlObj, "sample");
}

 Share!