- Требуется выполнить поиск значения
ID998724
в столбце «B» на листе «Учетная запись» в электронной таблице с использованием скрипта Google Apps.
Если мое понимание верно, как насчет этих 3 примеров сценариев? Пожалуйста, подумайте об этом как об одном из нескольких ответов.
Пример сценария 1:
В этом сценарии я использовал Class TextFinder для этой ситуации. Это было добавлено в недавнем обновлении Google.
var urldb = "###"; // Please set this.
var searchValue = "ID998724";
var ss = SpreadsheetApp.openByUrl(urldb);
var ws = ss.getSheetByName("Account");
var f = ws.createTextFinder(searchValue).findAll();
if (f.length > 0) {
for (var i = 0; i < f.length; i++) {
if (f[i].getColumn() == 2) {
Logger.log("found you" + f[i].getValue())
}
}
}
Пример сценария 2:
В этом сценарии значения извлекаются из столбца «B». Это также упоминается в комментарии Росса . А также из результата теста я использовал filter()
для этой ситуации.
var urldb = "###"; // Please set this.
var searchValue = "ID998724";
var ss = SpreadsheetApp.openByUrl(urldb);
var ws = ss.getSheetByName("Account");
var data = ws.getRange(1, 2, ws.getLastRow(), 1).getValues();
var f = data.filter(function(e) {return e[0] == searchValue});
if (f.length > 0) {
for (var i = 0; i < f.length; i++) {
Logger.log("found you" + f[i])
}
}
Пример сценария 3:
В этом сценарии я использовал Query Language для этой ситуации.
var urldb = "###"; // Please set this.
var searchValue = "ID998724";
var ss = SpreadsheetApp.openByUrl(urldb);
var ws = ss.getSheetByName("Account");
var query = "select * where B='" + searchValue + "'";
var url = "https://docs.google.com/spreadsheets/d/" + ss.getId() + "/gviz/tq?gid=" + ws.getSheetId() + "&tqx=out:csv&tq=" + encodeURIComponent(query);
var options = {headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()}};
var csv = UrlFetchApp.fetch(url, options);
var f = Utilities.parseCsv(csv);
if (f.length > 0) {
for (var i = 0; i < f.length; i++) {
Logger.log("found you" + f[i][1])
}
}
Примечание:
- В вашем скрипте я думаю, что ошибка возникает в
return data[i][1]
. Потому что i
то же самое с data.length
. Если вы хотите получить значение, например, return data[i][1]
, пожалуйста, поставьте break
после Logger.log("found you" + data [i][1])
.
Ссылки:
Если я неправильно понял ваш вопрос, и эти примеры сценариев не дали желаемых результатов, я прошу прощения.