JXLS + SXSSF - Как сгенерировать файл Excel без включения шаблона вместе с фактически сгенерированным отчетом?

Я пытаюсь использовать JXLS PoiTransformer для создания действительно огромного отчета; проблема в том, что все примеры, которые я нашел до сих пор, генерируют файл Excel с двумя листами, один из которых содержит исходный, неизмененный шаблон, а другой содержит фактический результат. Есть ли способ пропустить первый лист, сохранив только результат?

Это мой текущий код:

        PoiContext context = new PoiContext();
        context.putVar("params", this.montaParametros(rel, filtro, opcoes, dados));
        context.putVar("dados", this.converteDados(rel, dados));

        Workbook template = WorkbookFactory.create(resource.getInputStream());
        PoiTransformer transformer = PoiTransformer.createSxssfTransformer(template, 5, false);

        AreaBuilder areaBuilder = new XlsCommentAreaBuilder(transformer);
        List<Area> xlsAreaList = areaBuilder.build();

        Area xlsArea = xlsAreaList.get(0);
        // xlsArea.applyAt(new CellRef("Template!A1"), context); // Tried forcing it to use the original sheet as the output sheet, but it does not overwrite things properly
        xlsArea.applyAt(new CellRef("Result!A1"), context); // Writes into a new sheet, but that's not what is desired

        Workbook processado = transformer.getWorkbook();
        processado.write(out);

person Haroldo_OK    schedule 07.04.2016    source источник


Ответы (1)


Хорошо, глупый я, кажется, я могу просто удалить ненужные листы перед записью на диск; Я думал, что SXSSF каким-то образом помешает этому, но, похоже, это просто работает:

    Workbook processado = transformer.getWorkbook();
    processado.removeSheetAt(0);
    processado.write(out);
person Haroldo_OK    schedule 08.04.2016
comment
Спасибо за ответ, я столкнулся с той же проблемой. Похоже, JxlsHelper действительно удаляет лист шаблона по умолчанию. - person Dalc; 20.01.2020