---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/user-guide/excel.md
  - https://ytsaurus.tech/docs/ru/user-guide/excel.md
title: Импорт и экспорт таблиц Microsoft Excel | YTsaurus
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/user-guide/excel.md -->
# Работа с данными Microsoft Excel

Веб-интерфейс YTsaurus позволяет загружать небольшие Microsoft Excel таблицы в статические таблицы YTsaurus, а также выгружать данные статических таблиц со строгой схемой в виде таблиц Microsoft Excel.

## Загрузка в новую таблицу

Чтобы загрузить данные с одновременным созданием YTsaurus таблицы, следует нажать кнопку **Create object** на странице директории. Из выпадающего меню выбрать **Upload xlsx**.

![](../../images/excel_upload_create.png){ .center }

В меню загрузки важно установить правильные значения переключателей **Column names** и **Types**.

Включенный **Column names** соответствует наличию имён колонок в первой строке Excel таблицы. Если в таблице нет заголовка, в качестве имён колонок YTsaurus таблицы будут использоваться имена колонок из Excel: A, B, C и т. д.

Включенный **Types** соответствует наличию строки с типами. Строка с типами должна идти за строкой с именами колонок (при её наличии). Типы задаются в формате `type` (смотрите [соответствие типов](#type-mapping)).

{% note warning "Внимание" %}

Если типы не заданы, для всех колонок будет использоваться `any`.

{% endnote %}

![](../../images/excel_upload.png){ .center }

## Загрузка в существующую таблицу

Чтобы загрузить данные в существующую YTsaurus таблицу, следует нажать кнопку **Upload** на странице таблицы.

![](../../images/excel_upload_existing.png){ .center }

{% note warning "Внимание" %}

Колонки из схемы YTsaurus таблицы должны обязательно присутствовать в Excel таблице. Дополнительные колонки Excel таблицы будут проигнорированы.

{% endnote %}

В меню загрузки с помощью переключателя **Append** можно выбрать режим загрузки. Включенное значение соответствует дописыванию строк в конец YTsaurus таблицы, выключенное — перезаписыванию таблицы.

![](../../images/excel_upload_append.png){ .center }

## Ограничения загрузки

* Загружается только первый лист Excel таблицы;
* Максимальное число строк — `1048576`;
* Максимальное число столбцов — `16384`;
* Максимальный размер входного файла — 50 Mb.

## Скачивание

Интерфейс позволяет указать интересующее подмножество строк и колонок.

![](../../images/excel_download.png){ .center }

В первой строке результата будут названия колонок, во второй — их типы.

### Ограничения

* Статические таблицы со строгой схемой;
* Максимальное число строк — `1048574`;
* Максимальное число колонок — `16384`;
* Максимальный размер выходного файла — 50 Mb;
* Максимальная длина строки в ячейке — `32767`; строки длиннее `32767` обрезаются.

### Соответствие типов {#type-mapping}

В Microsoft Excel поддерживается [4 типа данных](http://johnatten.com/2011/10/03/microsoft-excel-basics-part-ii-data-types-in-excel/): `Logical`, `Number`, `Text`, `Error`.

|**Описание типа данных YTsaurus**|**Представление в `type`**|**Представление в `type_v3`**|**Представление в Excel**|
|----------------|--------------------|-----------------------|---------------------|
|Целое число в диапазоне `[-2^63, 2^63-1]`|`int64`|`int64`|[Number*](#number*)|
|Целое число в диапазоне `[-2^31, 2^31-1]`|`int32`|`int32`|`Number`|
|Целое число в диапазоне `[-2^15, 2^15-1]`|`int16`|`int16`|`Number`|
|Целое число в диапазоне `[-2^7, 2^7-1]`|`int8`|`int8`|`Number`|
|Целое число в диапазоне `[0, 2^64-1]`|`uint64`|`uint64`| [Number*](#number*)|
|Целое число в диапазоне `[0, 2^32-1]`|`uint32`|`uint32`|`Number`|
|Целое число в диапазоне `[0, 2^16-1]`|`uint16`|`uint16`|`Number`|
|Целое число в диапазоне `[0, 2^8-1]`|`uint8`|`uint8`|`Number`|
|Вещественное 4-байтное число|`float`|`float`|[Number*](#number*)|
|Вещественное 8-байтное число|`double`|`double`|[Number*](#number*)|
|Стандартный булев тип `true/false`|`boolean`|`bool` (отличие от `type`)|`Logical`|
|Произвольная последовательность байт|`string`|`string`|[Text*](#text*)|
|Корректная UTF-8 последовательность|`utf8`|`utf8`|[Text*](#text*)|
|Целое число в диапазоне `[0, 49673 - 1]`,<br> выражает число дней, прошедших с unix-эпохи;<br> выражаемый диапазон дат: `[1970-01-01, 2105-12-31]`|`date`|`date`|[Number**](#number**)|
|Целое число в диапазоне `[0, 49673 * 86400 - 1]`,<br> выражает число секунд, прошедших с unix-эпохи;<br> выражаемый диапазон времен:<br>`[1970-01-01T00:00:00Z, 2105-12-31T23:59:59Z]`|`datetime`|`datetime`|[Number**](#number**)|
|Целое число в диапазоне `[0, 49673 * 86400 * 10^6 - 1]`,<br> выражает число микросекунд, прошедших с unix-эпохи;<br> выражаемый диапазон времен:<br>`[1970-01-01T00:00:00Z, 2105-12-31T23:59:59.999999Z]`|`timestamp`|`timestamp`|[Number***](#number***)|
|Целое число в диапазоне<br>`[-49673 * 86400 * 10^6 + 1, 49673 * 86400 * 10^6 - 1]`,<br> выражает число микросекунд между двумя таймстемпами|`interval`|`interval`|[Number*](#number*)|
|Произвольная YSON-структура,<br> физически представляется последовательностью байт,<br> не может иметь атрибут `required=%true`|`any`|`yson` (отличие от `type`)|[Text**](#text**)|

#### Number* {#number*}

`Number` — это Double-Precision Floating Point value.

В числе может быть только [15 цифр](https://stackoverflow.com/questions/38522197/converting-the-text-data-to-a-int64-format-in-excel), при попытке вставить `99999999999999999` (`10^17-1`) в ячейке появится `99999999999999900`.

Числа, не удовлетворяющие этому ограничению, экспортируются как строки.

#### Number** {#number**}

Значение из YTsaurus таблицы будет записано в ячейку Excel таблицы с типом `Number`, без потери точности. Значения с типом `date` и `datetime` экспортируются как `Number` со специальными стилями отображения и в Excel выглядят следующим образом:

* `date` — `2020-12-05`
* `datetime` — `2000-12-10 10:22:17`

#### Number*** {#number***}

Значение может не поместиться в `Number`.

`Timestamp` с миллисекундным разрешением экспортируется в виде `Number` со специальным стилем отображения (`1969-12-30 00:00:00`), с меньшим — в виде строки формата: `2006-01-02T15:04:05.999999Z`.

#### Text* {#text*}

`Text` — это строковый тип. Максимальная длина строки в ячейке — `32767`.

В YTsaurus длина строки может быть больше (вплоть до `128 * 10^6`). Длинные строки обрезаются.

#### Text** {#text**}

Значения сериализуются в [YSON](https://ytsaurus.tech/docs/ru/user-guide/storage/yson.md). Длинные строки, как и в `Text*`, обрезаются.

### Отсутствующие значения

Для `optional` типов, в случае отсутствия значения, в ячейку будет записана пустая строка.
<!-- endsource: ru/_includes/user-guide/excel.md -->
