2011-08-30 14 views
9

Nie mogę znaleźć sposobu eksportu pliku w .xlsx w JasperReports 4.1.1. Klasa:
Eksport JasperReports do xlsx, nie xls

JRXlsExporter 

posiada ona równowartość XLSX. I nie mogę znaleźć parametru do ustawienia formatu wyjściowego z xls na xlsx.

+3

Widzieliście to: http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/export/ooxml/JRXlsxExporter.html –

+0

@Alex Powinieneś umieść to w odpowiedzi. –

+0

@jschoen OK, dziękuję –

Odpowiedz

14

Klasa JRXlsxExporter powinna być używana do eksportu do formatu XLSX.

Próba użycia:

 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(); 
+0

Czy musimy zaktualizować wersję do wyższej? Używam 'jasperreports-3.7.6' – NaaN

+1

@tailorBird Wersja 3.7.0 zawiera tę klasę. Ostatnia wersja * JR * to 5.5.1 –

+0

Dzięki @Alex K. Właściwie zadałem pytanie [wcześniej] (http://stackoverflow.com/questions/22497343/jrxlsexporter-invalid-row-number-65536-outside dopuszczalny zakres) w odniesieniu do tego. Znalazłem odpowiedź tutaj. Spróbuję tego. – NaaN

0

JRXlsExporter dostępna jest w w JasperReports 4.5 i nowszych wersjach.

2

Wszystko, co musisz zrobić, to umieścić format, w drodze żądania, tak:

@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); 
} 
10

Ta odpowiedź jest pomoc użytkownikom JASPER RAPORT wersja> 5,6 (najnowsze wersje), stąd usuń przestarzały kod.

W nowszej wersji> 5.6 JRXlsxExporter.setParameter(..) został deprecated.

Należy użyć

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();