2011-08-30 72 views
9

我無法找到如何在JasperReports 4.1.1中的.xlsx中導出文件。 類:
JasperReports導出到xlsx,而不是xls

JRXlsExporter 

還沒有一個XLSX等同。我無法找到一個參數來設置從xls到xlsx的輸出格式。

+3

你見過這樣的:http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/export/ooxml/JRXlsxExporter.html –

+0

@Alex你應該把它放在答案中。 –

+0

@jschoen好的,謝謝 –

回答

14

JRXlsxExporter類應該用於輸出爲XLSX格式。

使用的樣品:

 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

我們是否需要將版本更新到更高版本?我正在使用'jasperreports-3.7.6' – NaaN

+1

@tailorBird版本3.7.0包含這個類。 * JR *的最後一個版本是5.5.1 –

+0

謝謝@Alex K.其實我已經問了一個問題[before](http://stackoverflow.com/questions/22497343/jrxlsexporter-invalid-row-number-65536-outside - 允許範圍)。我在這裏找到了答案。會試試這個。 – NaaN

0

JRXlsExporter在JasperReports的4.5和更高版本是可用的。

2

所有你需要做的就是把格式的請求路徑,像這樣:

@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

這個答案是幫助用戶與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();