> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riggery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Sheet map

> Оглавление книги, места, где лист меняет форму, или ячейки нескольких строк.

На графе добавьте **Sheet map**. У агента откройте **Files** и включите **Sheet map**. Шаг читает один файл, уже лежащий на этом Instance.

Результат — оглавление, сжатая карта или ячейки не больше 100 строк. Весь лист шаг не возвращает. Скрипту, которому нужны все ячейки, сетку загружает [Code](/ru/graph/tools/code) с тем же **File id**.

CSV, XLSX и XLS читаются в этом шаге. Тип файла определяется по содержимому, поэтому `.xls`, сохранённый с именем `.xlsx`, тоже откроется. PDF и Word берут уже готовое извлечение. Этот шаг его не запускает. Сначала вызовите [Extract tables](/ru/graph/tools/files-extract).

<h2 id="how">
  Как выполняется
</h2>

<Steps>
  <Step title="Найти File id">
    Один непрозрачный id. Те же правила, что у [Extract tables](/ru/graph/tools/files-extract#file-id).
  </Step>

  <Step title="Оглавление или один лист">
    Пустой **Лист** перечисляет листы: имя, строки и колонки после обрезки, сколько строк с текстом, сколько объединений. Имя листа возвращает карту этого листа, а с полем **Строки** — его ячейки.
  </Step>

  <Step title="Сжать лист">
    Строки с одними и теми же заполненными колонками становятся одной строкой карты (`from-to`). В ней эти колонки (`cols=A-D,F`), первые значения её первой строки с буквами колонок и объединения, которые в ней начинаются. Шапка, групповая строка или строка с другим набором заполненных колонок остаются отдельной строкой.
  </Step>

  <Step title="Свернуть повторы">
    Если один и тот же рисунок строк повторяется три раза и больше, например таблица на каждого перевозчика или порт, копии становятся одной строкой. `6-17 repeats 1-5 x3` значит, что строки с 6 по 17 — ещё три копии рисунка строк с 1 по 5. Дальше перечислено, где начинается каждая копия, и её первые значения. Копия может быть длиннее или короче первой.
  </Step>
</Steps>

<h2 id="input">
  Вход
</h2>

Вкладка инспектора **Настройки**. Правила пустого поля на графе: [Предыдущие узлы](/ru/graph/previous-nodes).

| Поле | Обязательно | Пустое | Заметки |
| - | - | - | - |
| **File id** | Да | Ошибка | Непрозрачный id файла Instance. Не имя файла. |
| **Лист** | Нет | Оглавление | Имя листа. Если несколько листов совпали только без учёта регистра, шаг завершается ошибкой и перечисляет имена. |
| **Строки** | Нет | Карта | Одна строка (`40`) или диапазон (`40-80`). Возвращает ячейки этих строк вместо карты. Не больше 100 строк за вызов; длинный диапазон обрезается, и результат об этом пишет. Диапазон за последней строкой заканчивается на последней строке. |

Текст объединения остаётся в левой верхней ячейке диапазона. Остальные ячейки диапазона пустые. Карта называет диапазон и не копирует текст по нему.

Пустые колонки в хвосте, которые файл помечает как использованные, отбрасываются. Лист без текста завершается ошибкой. Лист больше 8000 строк, 64 колонок или 8000 объединённых диапазонов завершается ошибкой, когда вы его называете, и в ней есть эти числа. Оглавление этот лист всё равно показывает, и [Извлечь таблицы](/ru/graph/tools/files-extract) его читает.

PDF и Word добавляют `warning: merges_unavailable`. Объединения из этих файлов не перечисляются.

<h2 id="output">
  Выход
</h2>

На следующем узле **Предыдущие узлы** показывает **`Sheet map`: Result**.

| Выход | В меню | Тип | Следующий узел получит |
| - | - | - | - |
| Result | Да | Текст | Оглавление, карту одного листа или ячейки **Строк**. |

Длинная карта хранится в запуске. Модель дочитывает её по result id из результата инструмента.

Карта:

```text theme={null}
sheet: "Rates"
rows: 18
cols: 3
nonempty: 18
merges: 0
1-2 cols=A head="A:Rates"
3-5 cols=A-C head="A:POL | B:20GP | C:40HQ"
6-17 repeats 1-5 x3: 6 "A:Shanghai", 10 "A:Qingdao", 14 "A:Xiamen"
18 cols=A-B head="A:Notes | B:x"
```

Тот же лист со **Строками** `2-4`:

```text theme={null}
sheet: "Rates"
rows: 2-4
2: A="Ningbo"
3: A="POL" B="20GP" C="40HQ"
4: A="Moscow" B="10" C="20"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.