Google tables - Поиск значения (строки)

Develop3r

Новичок
Регистрация
25.11.2020
Сообщения
17
Благодарностей
6
Баллы
3
Есть гугл таблица, в ней содержатся данные - например номер телефона 891020300101
Найти номер телефона в таблице можно через действие (таблица\взять строки\содержит текст), но как узнать в какой строке был этот номер?

Пока, что сделал реализацию через перебор строк от начала к концу по совпадению, но это извращение. Есть ли вариант сразу узнать, в какой строке было это совпадение?
 

Develop3r

Новичок
Регистрация
25.11.2020
Сообщения
17
Благодарностей
6
Баллы
3
Решил следующим образом:

Таблица\Взять столбец\Положить в список

Берем c# код


C#:
var list = project.Lists["listforsearch"];
string str = project.Variables["apruve"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        numStr += i + "\r\n";
}
return numStr.Trim();
Далее проверяем логикой на пустоту, если не пустота = это наша ячейка
 
  • Спасибо
Реакции: henry88

Develop3r

Новичок
Регистрация
25.11.2020
Сообщения
17
Благодарностей
6
Баллы
3
Код для поиска на c# сразу в таблице

C#:
// берем из переменной текст, который надо искать
var textContains = project.Variables["Category_ID"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.GoogleSpreadsheets["IDTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
for(int i=0; i < sourceTable.RowCount; i++)
{
// читаем строку из таблицы (это будет массив ячеек)
var cells = sourceTable.GetRow(i).ToArray();
// пройдем в цикле по всем ячейкам
for (int j=0; j < cells.Length; j++)
{
// проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
if (cells[j].Contains(textContains))
return i;
}
}
}
// если ничего не нашли возвращаем "no"
return "no";
 
  • Спасибо
Реакции: mrak7575

mrak7575

Client
Регистрация
17.04.2018
Сообщения
112
Благодарностей
33
Баллы
28
спасибо за код! вопрос ещё как получить значения колонки и строки , если найдена информация (т.е. из кода получаем ответ "yes" а как прикрутить чтоб выдавала ещё в 2 переменные значения колонки и строки
 

dobrohod

Client
Регистрация
15.10.2018
Сообщения
43
Благодарностей
5
Баллы
8
Код для поиска на c# сразу в таблице

C#:
// берем из переменной текст, который надо искать
var textContains = project.Variables["Category_ID"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.GoogleSpreadsheets["IDTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
for(int i=0; i < sourceTable.RowCount; i++)
{
// читаем строку из таблицы (это будет массив ячеек)
var cells = sourceTable.GetRow(i).ToArray();
// пройдем в цикле по всем ячейкам
for (int j=0; j < cells.Length; j++)
{
// проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
if (cells[j].Contains(textContains))
return i;
}
}
}
// если ничего не нашли возвращаем "no"
return "no";
С Google таблицей это не работает, только с обычной.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)