При открытии в Excel отсутствует отображение данных в ods файле, сгенерированном в JasperSoft
Я делаю отчеты при помощи Jasper Soft - делаю таблицы, генерирую jrxml, вычисляю данные и заполняю этот шаблон.
public static void exportToOds(List<JasperPrint> jasperPrints, ByteArrayOutputStream output) {
try (ByteArrayOutputStream outputStream = output) {
JROdsExporter exporter = new JROdsExporter();
exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
SimpleOdsReportConfiguration configuration = new SimpleOdsReportConfiguration();
configuration.setOnePagePerSheet(true);
exporter.setConfiguration(configuration);
exporter.exportReport();
} catch (Exception e) {
throw new RuntimeException("Error exporting report to ODS", e);
}
}
public void fill(UUID templateId, List<JasperPrint> jasperPrints, StorageMtsData data) {
List<StorageMtsDataSheet> sheet = data.getStorageMtsDataSheet();
JasperReport jasperReport = compileReport(String.format("report/%s/StorageMTCMainReport.jrxml", templateId));
JasperReport jasperSubReport = compileReport(String.format("report/%s/StorageMTCSubReport.jrxml", templateId));
JasperReport jasperSubSubReport = compileReport(String.format(
"report/%s/StorageMTCSubSubTAReport.jrxml",
templateId
));
JRBeanCollectionDataSource mainDataSource = new JRBeanCollectionDataSource(sheet);
Map<String, Object> params = new HashMap<>();
params.put("SUBREPORT_PATH", jasperSubReport);
params.put("SUBREPORT_SUBREPORT_PATH", jasperSubSubReport);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, mainDataSource);
jasperPrints.add(jasperPrint);
}
}
Дело в том, что при открытии файла ODS при помощи OpenOffice или LibraOfiice - все таблицы заполнены, а если открыть при помощи MicrosoftExcel - только пустые таблицы. Если открыть при помощи OpenOffice или LibraOfiice и сохранить, то после этого при открытии при помощи Excel все данные есть. Сравнил файл до сохранения и после сохранения - меняется версия манифеста: до сохранения - 1.0, после сохранения - 1.3. Мне надо сделать чтобы сгенерированный файл ODS сразу открывался при помощи Excel без промежуточных сохранений.