Как дублировать данные основного цикла в JETT?

Я разрабатываю отчет Excel с данными иерархии. Используя JETT (переводчик шаблонов java excel), я хотел бы дублировать строки из основного цикла, когда есть коллекция коллекции. Вот краткий пример.

public class JettTest {
    @Test
    public void run() throws IOException {
        ClassLoader classLoader = getClass().getClassLoader();
        InputStream template = classLoader.getResourceAsStream("template.xlsx");
        try (
                XSSFWorkbook wb = new XSSFWorkbook(template);
                FileOutputStream fos = new FileOutputStream("target/output.xlsx")
        ) {
            Map<String, Object> params = new HashMap<>();
            Parent parent1 = new Parent("parent1", Arrays.asList("child1", "child2"));
            Parent parent2 = new Parent("parent2", Arrays.asList("childX", "childY"));
            List<Parent> parents = Arrays.asList(parent1, parent2);
            params.put("parents", parents);

            ExcelTransformer transformer = new ExcelTransformer();
            transformer.transform(wb, params);
            wb.write(fos);
        }
    }

    public class Parent {
        private String name;
        private List<String> children;

        public Parent(String name, List<String> children) {
            this.name = name;
            this.children = children;
        }

        public String getName() {
            return name;
        }

        public List<String> getChildren() {
            return children;
        }
    }
}

Шаблон Excel

Как дублировать данные основного цикла в JETT?

А1 это

<jt:forEach items = "${parents}" var = "parent">${parent.name}

B1 это

<jt:forEach items = "${parent.children}" var = "child">${child}</jt:forEach></jt:forEach>

Это дает мне

Как дублировать данные основного цикла в JETT?

Это выглядит хорошо, однако мне нужно продублировать имена родителей и получить

Как дублировать данные основного цикла в JETT?

Есть идеи, пожалуйста?

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно, чтобы {parent.name} находился в дочернем теге forEach, если вы хотите, чтобы родительское имя отображалось для каждого дочернего имени.

Что произойдет, если вы переместите дочерний тег forEach из B1 в A1 сразу после родительского тега forEach?

Действительно, помогает. Так легко! Спасибо, брат

Andriy Slobodyanyk 20.01.2019 19:21

Другие вопросы по теме