Экспорт JasperReports в xlsx, а не xls
Я не могу найти, как экспортировать в файл .xlsx в JasperReports 4.1.1.
Класс:
JRXlsExporter
не имеет эквивалента Xlsx. И я не могу найти параметр для установки формата вывода из xls в xlsx.
4 ответов
на JRXlsxExporter класс должен использоваться для экспорта в .
пример использования:
JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);
JasperReport jasperReport = JasperCompileManager.compileReport(reportJRXMLSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, outputFileName);
exporter.exportReport();
этот ответ должен помочь пользователям с ВЕРСИЯ ОТЧЕТА JASPER >5.6 (последние версии), следовательно, удалите устаревший код.
в более поздней версии >5.6 в JRXlsxExporter.setParameter(..)
была deprecated
.
вы должны использовать
JRMapArrayDataSource dataSource = new JRMapArrayDataSource(data);
JasperReport jasperReport = JasperCompileManager.compileReport(reportJRXMLSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
JRXlsxExporter exporter = new JRXlsxExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
File outputFile = new File("excelTest.xlsx");
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputFile));
SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
configuration.setDetectCellType(true);//Set configuration as you like it!!
configuration.setCollapseRowSpan(false);
exporter.setConfiguration(configuration);
exporter.exportReport();
все, что вам нужно сделать, это поместить формат в путь запроса, например:
@RequestMapping( value = "/ActivityReport.xlsx", method = RequestMethod.GET )
public ModelAndView generateActivityReportXLS( HttpServletRequest request, HttpServletResponse response ) {
List<ActivityDisplay> list = activityManager.listActivities();
Map<String, Object> parameterMap = new HashMap<>();
parameterMap.put( "datasource", new JRBeanCollectionDataSource( list ) );
return new ModelAndView( "activitiesXLSView", parameterMap );
}