Spring MVC et fichier Excel via AbstractJExcelView

Fichier Spring MVC et Excel via AbstractJExcelView

Spring MVC est livré avec la classeAbstractJExcelView pour exporter des données vers un fichier Excel via la bibliothèqueJExcelAPI. Dans ce didacticiel, il montre l'utilisation de la classeAbstractJExcelView dans l'application Spring MVC pour exporter des données vers un fichier Excel à télécharger.

1. JExcelAPI

Obtenez lesJExcelAPI library.

    
    
    net.sourceforge.jexcelapi
    jxl
    2.6.3
    

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 (AbstractJExcelView).

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
        Map revenueData = 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. AbstractJExcelView

Créez une vue Excel en étendant la classeAbstractJExcelView et remplacez la méthodebuildExcelDocument() pour remplir les données dans un fichier Excel. LeAbstractJExcelView utilise JExcelAPI pour créer le détail du fichier Excel.

Note
Pour plus de détails sur l'utilisation de JExcelAPI, veuillez consulter lesJExcelAPI documentation

Fichier: ExcelRevenueReportView.java

package com.example.common.view;

import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.springframework.web.servlet.view.document.AbstractJExcelView;

public class ExcelRevenueReportView extends AbstractJExcelView{

    @Override
    protected void buildExcelDocument(Map model, WritableWorkbook workbook,
       HttpServletRequest request, HttpServletResponse response)
       throws Exception {

       Map revenueData = (Map) model.get("revenueData");
       WritableSheet sheet = workbook.createSheet("Revenue Report", 0);

           sheet.addCell(new Label(0, 0, "Month"));
           sheet.addCell(new Label(1, 0, "Revenue"));

           int rowNum = 1;
       for (Map.Entry entry : revenueData.entrySet()) {
        //create the row data
        sheet.addCell(new Label(0, rowNum, entry.getKey()));
            sheet.addCell(new Label(1, rowNum, entry.getValue()));
            rowNum++;
           }
       }
}

Note
Vous pouvez également utiliser leAbstractExcelView, qui utilise l'APIApache POI pour créer la même vue Excel, voir ceAbstractExcelView 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.

SpringMVC-ExcelFile-Example

Télécharger le code source