Fichier Spring MVC et Excel via AbstractExcelView
Spring MVC est livré avec la classeAbstractExcelView pour exporter des données vers un fichier Excel via la bibliothèqueApache POI. Dans ce didacticiel, il montre l'utilisation de la classeAbstractExcelView dans l'application Spring MVC pour exporter des données vers un fichier Excel à télécharger.
2. Manette
Une classe de contrôleur, générer des données factices pour la démonstration et obtenir le paramètre de demande pour déterminer quelle vue retourner. Si le paramètre de requête est égal à «EXCEL», renvoyez une vue Excel (AbstractExcelView).
Fichier: RevenueReportController.java
package com.example.common.controller; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class RevenueReportController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { String output = ServletRequestUtils.getStringParameter(request, "output"); //dummy data MaprevenueData = new HashMap (); revenueData.put("Jan-2010", "$100,000,000"); revenueData.put("Feb-2010", "$110,000,000"); revenueData.put("Mar-2010", "$130,000,000"); revenueData.put("Apr-2010", "$140,000,000"); revenueData.put("May-2010", "$200,000,000"); if(output ==null || "".equals(output)){ //return normal view return new ModelAndView("RevenueSummary","revenueData",revenueData); }else if("EXCEL".equals(output.toUpperCase())){ //return excel view return new ModelAndView("ExcelRevenueSummary","revenueData",revenueData); }else{ //return normal view return new ModelAndView("RevenueSummary","revenueData",revenueData); } } }
3. AbstractExcelView
Créez une vue Excel en étendant la classeAbstractExcelView et remplacez la méthodebuildExcelDocument() pour remplir les données dans un fichier Excel. LeAbstractExcelView utilise l'API Apache POI pour créer le détail du fichier Excel.
Note
Pour plus de détails sur l'utilisation du POI Apache, reportez-vous àApache POI documentation
Fichier: ExcelRevenueReportView.java
package com.example.common.view; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.web.servlet.view.document.AbstractExcelView; public class ExcelRevenueReportView extends AbstractExcelView{ @Override protected void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { MaprevenueData = (Map ) model.get("revenueData"); //create a wordsheet HSSFSheet sheet = workbook.createSheet("Revenue Report"); HSSFRow header = sheet.createRow(0); header.createCell(0).setCellValue("Month"); header.createCell(1).setCellValue("Revenue"); int rowNum = 1; for (Map.Entry entry : revenueData.entrySet()) { //create the row data HSSFRow row = sheet.createRow(rowNum++); row.createCell(0).setCellValue(entry.getKey()); row.createCell(1).setCellValue(entry.getValue()); } } }
Note
Vous pouvez également utiliser lesAbstractJExcelView, qui utilisent lesJExcelAPI pour créer la même vue Excel, voir ceAbstractJExcelView example.
4. Configuration du ressort
Créez unXmlViewResolver pour la vue Excel.
/WEB-INF/spring-excel-views.xml
Fichier: spring-excel-views.xml
5. Demo
Il génère un fichier Excel à télécharger par l'utilisateur.
Télécharger le code source
Téléchargez-le -SpringMVC-ExcelFile-AbstractExcelView-Example.zip (9 Ko)