Частые проблемы и решения

1. Пустые столбцы и ячейки в шаблонах Excel исчезают в результате рендера

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

Решения:

  • Заполните фоновым цветом: примените фоновый цвет к пустым ячейкам в целевой области, чтобы ячейки оставались видимыми во время рендера.
  • Вставьте пробелы: вставьте символ пробела в пустые ячейки, чтобы сохранить структуру ячеек даже без фактического содержимого.
  • Задайте границы: добавьте стили границ таблицы, чтобы усилить границы ячеек и предотвратить их исчезновение при рендере.

Пример:

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

2. Объединённые ячейки некорректно отображаются в результате

Описание проблемы: При использовании циклов для вывода таблиц объединённые ячейки в шаблоне могут вызывать некорректный результат рендера, например потерю эффекта объединения или смещение данных.

Решения:

  • Избегайте объединения ячеек: по возможности не используйте объединённые ячейки в таблицах с циклическим выводом, чтобы обеспечить корректный рендер данных.
  • Используйте выравнивание по выделению: если нужно выровнять текст по центру нескольких ячеек по горизонтали, используйте функцию «По центру (выделение)» вместо объединения ячеек.
  • Ограничивайте позиции объединения: если объединение необходимо, объединяйте только ячейки над таблицей или справа от неё, избегая объединения снизу и слева, чтобы не потерять эффект объединения при рендере.

3. Контент под областью цикла вызывает нарушение форматирования

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

Решения:

  • Скорректируйте макет и разместите область цикла внизу: это наиболее рекомендуемый способ. Разместите область таблицы, где нужен циклический рендер, в нижней части листа. Перенесите всю информацию, которая раньше была под ней (итоги, подписи и т. д.), выше области цикла. Тогда данные цикла смогут свободно расширяться вниз, не затрагивая другие элементы.
  • Оставьте достаточный запас пустых строк: если контент обязательно должен находиться ниже области цикла, оцените максимальное число строк, которое может сгенерировать цикл, и вручную вставьте достаточное количество пустых строк как буфер между областью цикла и нижним контентом. У этого метода есть риск: если фактических данных окажется больше оценки, проблема повторится.
  • Используйте шаблоны Word: если требования к макету сложные и их нельзя решить перестройкой структуры Excel, рассмотрите использование документов Word в качестве шаблонов. Таблицы в Word автоматически сдвигают контент ниже при увеличении числа строк, без проблем с наложением.

Пример:

Неправильный подход: размещать информацию «Итог заказа» сразу под таблицей «Детали заказа» с циклом. 20250820080712

Правильный подход 1 (корректировка макета): перенесите информацию «Итог заказа» над таблицей «Детали заказа», чтобы область цикла стала нижним элементом страницы. 20250820082226

Правильный подход 2 (запас пустых строк): оставьте много пустых строк между «Детали заказа» и «Итог заказа», чтобы контент цикла имел достаточно места для расширения. 20250820081510

Правильный подход 3: используйте шаблоны Word.

4. При рендере шаблона появляются сообщения об ошибке

Описание проблемы: Во время рендера шаблона система показывает сообщения об ошибке, из-за чего рендер завершается с ошибкой.

Возможные причины:

  • Ошибки в заполнителях: имена заполнителей не совпадают с полями набора данных или содержат синтаксические ошибки.
  • Отсутствуют данные: в наборе данных нет полей, на которые ссылается шаблон.
  • Некорректное использование форматтеров: параметры форматтера неверны или используются неподдерживаемые типы форматирования.

Решения:

  • Проверьте заполнители: убедитесь, что имена заполнителей в шаблоне совпадают с именами полей в наборе данных и имеют корректный синтаксис.
  • Проверьте набор данных: подтвердите, что набор данных содержит все поля, на которые ссылается шаблон, и что форматы данных корректны.
  • Скорректируйте форматтеры: проверьте способы использования форматтеров, убедитесь в корректности параметров и используйте поддерживаемые типы форматирования.

Пример:

Некорректный шаблон:

Order ID: {d.orderId}
Order Date: {d.orderDate:format('YYYY/MM/DD')}
Total Amount: {d.totalAmount:format('0.00')}

Набор данных:

{
  "orderId": "A123456789",
  "orderDate": "2025-01-01T10:00:00Z"
  // Отсутствует поле totalAmount
}

Решение: добавьте поле totalAmount в набор данных или удалите ссылку на totalAmount из шаблона.