Тип «xlsx»

Условия и ограничения:

  1. загружаемый файл с расширением .xlsx должен быть типа «xlsx» (создан в программе MS Excel или иной способной создавать файлы данного типа);

  2. файл может содержать один или несколько листов – данные листы воспринимаются как независимые таблицы;

  3. данные на каждом листе воспринимаются как одна плоская таблица. Варианты, когда на листе фактически несколько таблиц данных (разграничены пустыми столбцами или строками, линиями границ или цветовым выделением ячеек), не поддерживаются;

  4. файл в ячейках может содержать формулы. Формулы должны корректно и без ошибок вычисляться при открытии в программе MS Excel. После загрузки в Систему ячейки с формулами будут восприняты как постоянные данные (полученные расчетом текущие значения);

  5. объединение ячеек в строках при загрузке игнорируется. Значение из объединенных ячеек в строке присваивается первой ячейке по порядку слева направо, остальные заполняются пустыми значениями;

  6. объединение ячеек в столбце при загрузке игнорируется. Значение из объединенных ячеек в столбце присваивается первой ячейке по порядку сверху вниз, остальные заполняются пустыми значениями;

  7. одновременное объединение в ячейке строк и столбцов обрабатывается аналогично. Значение из объединенных ячеек присваивается первой ячейке по порядку сверху вниз и слева направо, остальные заполняются пустыми значениями;

  8. первая строка на каждом листе (и только она) воспринимается как строка заголовков таблиц. Она должна содержать значения (будущие названия столбцов) во всех используемых столбцах. Сложные многострочные «шапки» таблиц, с объединениями строк и столбцов не поддерживаются. Доступно определение позиции строки заголовков с помощью параметра «СтрокаЗаголовка» (см. п. Параметры);

  9. для восприятия столбцов как определенных типов данных (целое и дробные числа, текст, дата и время) данные типы явно определите в файле у всех строк столбца, кроме первой (заголовка). Все строки столбца (кроме первой) должны иметь один тип данных – иначе столбец будет интерпретирован как текст и в дальнейшем к этим данным не будут применимы математические операции агрегирования;

  10. рекомендуется четко понимать необходимое (загружаемое) количество строк и столбцов. Лишние строки и столбцы (даже если они в MS Excel выглядят пустыми) – необходимо выделить и удалить до загрузки файла;

  11. тип значений по умолчанию – «строка». По умолчанию пустые столбцы и строки (пустые ячейки) в MS Excel создаются с типом «Общий». Такие столбцы воспринимаются как данные типа «Строка» (текст);

  12. игнорируются настроенные в Excel группировки строк и столбцов, фильтры, ширина, высота, выделение ячеек;

  13. сводные таблицы Excel воспринимаются, но игнорируются различного рода возможности визуализации сортировки и фильтрации, доступные для них в интерфейсе MS Excel (например, выделение отступами по уровням);

  14. настроенное в MS Excel скрытие столбцов и строк игнорируется;

  15. в загружаемом файле не должно быть столбцов с одинаковыми наименованиями (к одинаковым наименованиям также относятся поля типа «код» и «kod», т.к. при создании модели для поля «код» сформируется наименование на латинице – «kod», что приведет к дублированию полей в таблице);

  16. значение типа «Дата» или «Время» в Excel определяется как тип datetime64[ns] (Рисунок «Соответствие форматов для значений типа «Дата», Рисунок «Соответствие форматов для значений типа «Время»);

    Рисунок 2. Соответствие форматов для значений типа «Дата»

    Соответствие форматов для значений типа «Дата»

    Рисунок 3. Соответствие форматов для значений типа «Время»

    Соответствие форматов для значений типа «Время»

  17. значение типа «Текстовый» в Excel (в форматах, перечисленных в таблице ниже (Таблица «Форматы и примеры значений»)) определяется как тип datetime64[ns, UTC] (Рисунок «Соответствие форматов для значений типа «Текстовый»).

    Рисунок 4. Соответствие форматов для значений типа «Текстовый»

    Соответствие форматов для значений типа «Текстовый»

    Таблица 1. Форматы и примеры значений

    Формат Пояснение Примеры
    1 DD.MM.YYYY

    DD – день

    MM – месяц

    YYYY – год

    hh – часы

    mm – минуты

    ss – секунды

    (T|' ') – T или пробел – разделитель даты и времени

    [.sss] – опциональная дробная часть секунды (количество цифр – произвольное)

    [±hh[[:]mm]] – ±hh:mm, ±hhmm или ±hh – опциональный спецификатор смещения часового пояса

    31.01.2022
    2 DD-MM-YYYY 31-01-2022
    3 DD/MM/YYYY 31/01/2022
    4 YYYY.MM.DD 2022.01.31
    5 YYYY-MM-DD 2022-01-31
    6 YYYY/MM/DD 2022/01/31
    7 DD.MM.YYYY hh:mm:ss 31.01.2022 20:06:01
    8 DD-MM-YYYY hh:mm:ss 31-01-2022 20:06:01
    9 DD/MM/YYYY hh:mm:ss 31/01/2022 20:06:01
    10 YYYY.MM.DD(T|' ')hh:mm:ss[.sss][±hh[[:]mm]]
    • 2022.01.31 20:06:01

    • 2022.01.31T20:06:01

    • 2022.01.31T20:06:01.074297

    • 2022.01.31T20:06:01+03:00

    • 2022.01.31T20:06:01+0330

    • 2022.01.31T20:06:01+3

    11 YYYY-MM-DD(T|' ')hh:mm:ss[.sss][±hh[[:]mm]]
    • 2022-01-31 20:06:01

    • 2022-01-31T20:06:01

    • 2022-01-31T20:06:01.074297

    • 2022-01-31T20:06:01+03:00

    • 2022-01-31T20:06:01+0300

    • 2022-01-31T20:06:01+3

    12 YYYY/MM/DD(T|' ')hh:mm:ss[.sss][±hh[[:]mm]]
    • 2022/01/31 20:06:01

    • 2022/01/31T20:06:01

    • 2022/01/31T20:06:01.074297

    • 2022/01/31T20:06:01+03:00

    • 2022/01/31T20:06:01+0300

    • 2022/01/31T20:06:01+3