Группировка JXLS с разметкой xml - PullRequest
0 голосов
/ 10 января 2020

Поддерживается ли groupBy через xml конфигурацию для JXLS 2.x?

Причина в том, что у меня очень простой c пример группировки, который работает с комментариями Excel, но просто отказывается работать, когда я использую ту же конфигурацию через xml разметку. Выходные данные Excel сгруппированы, но в каждой группе нет данных.

Я не смог найти ни одного рабочего примера в Интернете, поэтому либо с моим синтаксисом что-то не так (см. Ниже), либо groupBy НЕ поддерживается в JXLS 2.x через xml разметка.

превосходные комментарии (это работает!)

enter image description here

detail_config. xml xml конфигурация (не работает!)

<xls>
    <area ref="Template!A1:D4">
        <each items="clockinouts" groupBy="employeeName" groupOrder="asc" ref="Template!A1:D3">
            <area ref="Template!A1:D3">
                <each items="_group.items" var="clockinout" ref="Template!A2:D2">
                    <area ref="Template!A2:D2"/>
                </each>
            </area>
        </each>
    </area>
</xls>

Java код для загрузки xml конфигурация

public static void main(String args[]) throws IOException {
    List<ClockInOut> clockInOuts;

    clockInOuts = loadCSV();
    InputStream is = GroupingDemo.class.getResourceAsStream("detail_template.xlsx");

    try (OutputStream os = new FileOutputStream("target/detail.xlsx")) {
        Transformer transformer = TransformerFactory.createTransformer(is, os);
        try (InputStream configInputStream = GroupingDemo.class.getResourceAsStream("detail_config.xml")) {
            AreaBuilder areaBuilder = new XmlAreaBuilder(configInputStream, transformer);
            List<Area> xlsAreaList = areaBuilder.build();
            Area xlsArea = xlsAreaList.get(0);
            Context context = new Context();
            context.putVar("clockinouts", clockInOuts);
            xlsArea.applyAt(new CellRef("Template!A1"), context);
            transformer.write();
        }
    }
}

1 Ответ

0 голосов
/ 11 января 2020

Исходя из исходного кода , похоже, что XML разметка поддерживает только атрибуты item, var, dir и ref, поэтому ожидается вышеупомянутое поведение. Возникла проблема в репозитории JXLS, так что, надеюсь, это будет исправлено в будущей версии.

В данный момент разметка Excel, похоже, является шагом вперед.

...