Обучение Урок 2 из 12
Таблица Excel
- Цель
- Процесс читает clients.xlsx, проверяет телефоны клиентов, пишет статус в каждую строку и сводку по городам на отдельный лист
- Время
- 20 минут
Файлы примеров
- clients.xlsx — 6,8 КБ
- excel_check.flow.json — 4,1 КБ
Что понадобится #
- Студия Tulpar (урок Первый процесс пройден).
- Файлы примеров:
excel_check.flow.jsonиclients.xlsx. Excel на компьютере не нужен — студия и робот читают и пишут файлы.xlsxсами.
Создайте папку, например C:\Уроки\Excel, и положите в неё оба файла. Путь к файлу без диска считается от папки,
где сохранён процесс, поэтому таблица должна лежать рядом с .flow.json.
В clients.xlsx пять клиентов: колонки „ФИО“, „Телефон“, „Город“ и пустая пока „Статус“.
Шаг 1. Откройте процесс #
В студии нажмите «Открыть» и выберите excel_check.flow.json. Процесс состоит из шагов:
file.copy— делает копиюclients_result.xlsx, чтобы исходная таблица не менялась;excel.readRange— читает все строки листа в переменнуюclients;control.forEach— для каждого клиента проверяет телефон и пишет статус в колонку D;excel.writeRange— записывает сводку по городам на лист „Города“.

Шаг 2. Чтение таблицы #
Выберите шаг „Прочитать клиентов“. В «Свойства»:
- путь к файлу —
clients_result.xlsx; - лист и диапазон пустые — читается первый лист целиком;
- флажок первой строки-заголовка включён: каждая строка становится объектом с ключами из заголовков, например
client['ФИО']; - в «Выходы» строки сохраняются в переменную
clients.
Шаг 3. Проверка строк и запись статуса #
Внутри цикла „Для каждого клиента“ (переменная элемента client, индекса — i):
control.assign„Проверить телефон“ записывает вstatusзначение выражения/^\+996 \d{3} \d{3} \d{3}$/.test(client['Телефон']) ? 'Проверен' : 'Ошибка в телефоне'.excel.writeCell„Статус в колонку D“ пишет{{ status }}в ячейкуD{{ i + 2 }}: индексiначинается с 0, а первая строка листа — заголовки, поэтому строка клиента —i + 2.

Шаг 4. Сводка на отдельный лист #
Шаг „Сводка по городам“ собирает массив объектов { 'Город': …, 'Клиентов': … }, а excel.writeRange
записывает его на лист Города с ячейки A1. Ключи объектов становятся заголовками колонок; листа нет — он
создаётся.

Шаг 5. Запуск #
Нажмите «Запуск» (F5). Робот выполняет шаги по порядку, в «Лог» — строка на каждого клиента.
Что должно получиться #
- В «Лог»:
Клиентов в таблице: 5, пять строк вида1. Асанов Нурлан Бакытович (Бишкек) — ПроверениГотово: проверено 5 из 5, результат — clients_result.xlsx. - Рядом с процессом появился
clients_result.xlsx: в колонке „Статус“ у всех —Проверен, на листе „Города“ — пять городов по одному клиенту. - Исходный
clients.xlsxне изменился.
Испортите телефон в clients.xlsx (например, уберите пробел) и запустите снова: у этого клиента в статусе будет
Ошибка в телефоне, а в итоге — проверено 4 из 5.
Если не получилось #
| Что видно | Что сделать |
|---|---|
| „файл не найден“ на первом шаге | clients.xlsx должен лежать в папке процесса. Сохраните процесс в ту же папку (Ctrl+S) и запустите снова. |
| „файл занят“ | Закройте clients_result.xlsx в Excel: открытый файл нельзя перезаписать. |
| В логе пустые ФИО | Имена колонок в выражениях должны совпадать с заголовками таблицы буква в букву: client['ФИО']. |
| Статусы записаны не в те строки | Проверьте ячейку: D{{ i + 2 }} — при таблице с заголовками в первой строке. |
Дальше — урок Веб-форма в браузере: те же клиенты подаются заявками на веб-странице.