Все ноды/Data/DataFrame I/O
Читать XLSX
Считывает лист Excel-файла (xlsx) из подключённого file_store в DataFrame. Поддерживает выбор листа по имени или индексу.
Тип в графе: df_read_xlsx
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение
- Исполнение + данные
Запускается сразу
Как применять
Читает один лист книги Excel и отдаёт его таблицей (DataFrame). Хранилище, путь и «Источник подключения» устроены так же, как у Читать CSV — разница в самом файле: здесь не нужно угадывать разделитель и кодировку, но за один шаг читается ровно один лист.
Берите CSV, когда файл приходит от машины (выгрузка, экспорт, ответ API), и XLSX, когда книгу присылают люди: с форматированием, несколькими листами и датами, которые в CSV пришлось бы разбирать строкой.
Как это работает
Поле «Лист» принимает и имя, и номер: 0 — первый лист, Отчёт — лист с таким именем. Пусто
тоже читается как первый лист. Поле поддерживает Jinja, поэтому имя листа можно собрать из
переменной.
«Индекс строки заголовка» указывает, какая строка книги содержит имена столбцов: 0 — первая
строка листа. Если над таблицей есть шапка отчёта на две строки, поставьте 2.
Дальше по графу уезжает вся таблица, а в логе видно превью — первые 50 строк, размер и типы столбцов.
Частые ошибки
- Лист с числовым именем. Значение, состоящее из цифр, всегда трактуется как номер: лист
под именем
2024выбрать не получится — нода пойдёт искать лист с индексом 2024 и упадёт. Переименуйте лист или выберите его по номеру. - Старый формат
.xls. Читаются только книги.xlsx/.xlsm. Файл в старом формате нужно пересохранить. - Ожидание, что приедут все листы. Нода отдаёт один лист. Для второго поставьте вторую ноду и соедините результаты нодой DF: склейка.
- Объединённые ячейки в шапке. Значение объединённой ячейки попадёт только в первый из
столбцов, остальные окажутся пустыми и получат имена вида
Unnamed: 2. - Книга больше лимита. «Макс. байт» (25 МиБ) обрезает передачу, а обрезанный xlsx не разбирается вовсе: шаг падает с ошибкой разбора. Такую книгу нужно уменьшить или выгрузить нужный лист в CSV.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
File storefile_store | Данныеdata | — | показывается, когда connection_source ≠ "auto" |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Successoutput | Исполнение + данныеexecute_data | dataframe | |
Erroron_error | Исполнение + данныеexecute_data | — | показывается, когда expose_error_output = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Путь к файлуpath | string | "" | Путь относительно корня хранилища. Jinja-шаблоны рендерятся на каждом ране, поэтому ``reports/{{ variables.session_id }}.csv`` пишет отдельный файл на каждую сессию. поддерживает шаблоны |
Листsheet_name | string | 0 | Индекс листа (целое число) или имя листа. По умолчанию 0 = первый лист. Поддерживает Jinja. поддерживает шаблоны |
Индекс строки заголовкаheader_row | integer | 0 | Индекс строки заголовка столбцов (с 0). Используйте -1, чтобы пропустить заголовок. |
Источник подключенияconnection_source | string | auto | Откуда нода берёт подключение. «Из контекста рана» использует то, что платформа уже знает (Telegram-бот, в который задеплоен этот воркфлоу / собственное файловое хранилище этого воркспейса), и не требует проводов. «Внешнее подключение» показывает ресурсный порт, чтобы в него можно было подключить конфиг-ноду. Варианты: |
Подпапкаstore_subfolder | string | "" | Необязательная папка внутри стора этого воркспейса, которую считать корнем, напр. `reports` или `sessions/{{ variables.session_id }}`. Пусто = корень стора. поддерживает шаблоны показывается при connection_source = auto |
| Дополнительно | |||
Макс. байтmax_bytes | integer | 26214400 | Не передавать больше указанного числа байт. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.