Использование HTML для поиска в Google Sheet и возврата совпавших строк - PullRequest
1 голос
/ 27 марта 2019

Я в основном пытаюсь создать веб-приложение с использованием скрипта Google Apps, используя интерфейс HTML, который позволит пользователю выполнять поиск в таблице Google по именам, датам и ключевым словам и отображать соответствующие строки на поисковом сайте.

Мой лист содержит множество строк, но меня интересуют только 3 строки: имя, дата и ключевые слова.Я хотел бы иметь возможность искать все строки в моем листе, которые соответствуют имени, дате и ключевому слову.

До сих пор я пробовал следовать -> Какли форма Google получить данные электронной таблицы и отобразить их на сайте Google? инструкции этой ссылки, однако каждый раз, когда я нажимаю кнопку "Отправить", она отображается как пустая для результатов поиска.

<!DOCTYPE html>

<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <form method="get">

    Responsible: <input type="text" id="responsible"/><br>

    Date From: <input type="date" id="datefrom"/>  
    Date To: <input type="date" id="dateto"/><br>

    Description: <input type="text" id="description"/><br>

    <button onclick="gatherSearch()">Search</button>

    <input type="reset" value="Reset">

    </form>
  </body>
</html>

В идеале именно так должна выглядеть форма.Я мог бы либо указать имя, дату и описание (или набор из множества), и он вернул бы строки, которые соответствуют моему поиску.

Любая помощь или указатели в правильном направлениибудет принята с благодарностью:)

РЕДАКТИРОВАТЬ

Ниже представлена ​​моя функция collectSearch, которая собирает текст в строке поиска со страницы HTML ипересылает его в мой файл .gs для поиска.

function gatherSearch() {
      var responsible = document.getElementById('responsible').value;
      var datefrom = formatDate(document.getElementById('datefrom').value);
      var dateto = formatDate(document.getElementById('dateto').value);
      var description = document.getElementById('description').value;

      google.script.run.basicSearch(responsible, datefrom, dateto, description);
      }
    }

1 Ответ

1 голос
/ 27 марта 2019

Я только что сделал что-то очень похожее на вас, Джексон, используя API Google Sheets. Я следовал этому руководству , чтобы оно заработало. Предполагая, что вы уже настроили API Google Sheets, перейдите к шагу 2. Пример функции, которую они там назвали listMajors (), - это то, что вы будете искать.

function listMajors() {
    gapi.client.sheets.spreadsheets.values.get({
      spreadsheetId: 'YOUR_SPREADSHEET_ID',
      range: 'THE_RANGE_YOU_NEED_TO_SELECT',
    }).then(function(response) {
      var range = response.result;
      // If you get results back
      if (range.values.length > 0) {
        appendPre('Name, Major:');
        for (i = 0; i < range.values.length; i++) {
          var row = range.values[i];
          // Print columns A and E, which correspond to indices 0 and 4.
          appendPre(row[0] + ', ' + row[4]);
        }
      } else {
        appendPre('No data found.');
      }
    }, function(response) {
      appendPre('Error: ' + response.result.error.message);
    });
  }

То, что вам нужно будет сделать, это для каждого результата, который вы получите, добавить его в список или таблицу, чтобы отобразить список результатов. Допустим, вы получили Name, Date и Keyword, которые вы затем добавили бы в цикл for в вышеприведенном примере и добавили каждую строку, var result = result.value[i] к таблице или что-то в этом роде.

Подробнее о чтении и письме в Google Sheets можно узнать, используя API здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...