Назначение
Демо-класс ZCL_XTT_DEMO_040 описывает скалярные типы и постобработку XLSX. Формулы, сортировка и форматирование Excel зависят от фактического типа ячейки, поэтому ABAP-типы следует сохранять и переопределять только по явному требованию шаблона.
Типы и преобразования
Тип данных критичен для Excel, поскольку от него зависят формулы, сортировка и форматирование ячейки.
В атрибутах ZCL_XTT_REPLACE_BLOCK вы можете найти следующие объявления.
Базовые типы данных
| Тип | Описание |
|---|---|
| integer | Целое (int4, int8, b, s) |
| double | Число с плавающей точкой (p, f, decfloat16, decfloat34) |
| date | Дата (d) |
| time | Время (t) |
| string | Строка (string) |
datetime |
Виртуальный тип (DATE + TIME) |
boolean |
Для Excel (ИСТИНА или ЛОЖЬ) |
mask |
Использовать WRITE TO |
as_is |
Не преобразовывать XML символы (может содержать специальные символы <>&’..) |
image |
О картинках подробнее тут |
block |
Об условных блоках подробнее тут |
Первые четыре типа определяются автоматически. boolean и datetime указываются явно.

Дополнение ;type=mask может использоваться для номеров материалов для удаления ведущих нулей, а также для вывода по маске СПП элементов.
Для переноса строки используйте CL_ABAP_CHAR_UTILITIES=>CR_LF; XTT подставит разделитель целевого формата автоматически.
| Класс | Разделитель страниц | Разделитель строк |
|---|---|---|
| ZCL_XTT_EXCEL_XLSX | - | cl_abap_char_utilities=>cr_lf |
| ZCL_XTT_EXCEL_XML | - | |
| ZCL_XTT_WORD_DOCX & ZCL_XTT_WORD_XML | <w:br w:type=”page”/> | <w:br/> |
| ZCL_XTT_PDF | <breakAfter targetType=”pageArea”/> | cl_abap_char_utilities=>cr_lf |
| ZCL_XTT_HTML | - | <br/> |
Также в этом классе можно найти несколько констант, которые определяют, какие данные вы передаете методу merge.
- ‘struct’
- ‘object’
- ‘table’
- ‘tree’
До этого мы передавали только структуры и таблицы в метод «merge». Но также мы можем передавать объекты (они работают точно так же, как структуры) и деревья.
Если в вашем шаблоне есть
- Таблицы (ListObjects) и сводные таблицы основанные на таблицах
- Объединенные ячейки
- Именованные диапазоны
- Формулы с предшествующим знаком доллара $
Они будут «растянуты» после вставки данных в класс ZCL_XTT_EXCEL_XLSX.
В классе ZCL_XTT_EXCEL_XML только формулы и объединенные ячейки будут успешно обработаны
Во внутреннем представлении Excel XML используются относительные ссылки, поэтому специальный знак $ для XLSX там не требуется.