Foros del Web » Programación para mayores de 30 ;) » Java »

generar excel desde spring mvc

Estas en el tema de generar excel desde spring mvc en el foro de Java en Foros del Web. Wenas, les comparto parte del codigo para generar excel mediante spring mvc, de varias formas Código PHP: package com . controlador ; import java . io . ...
  #1 (permalink)  
Antiguo 10/07/2013, 16:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 14 años, 6 meses
Puntos: 5
generar excel desde spring mvc

Wenas, les comparto parte del codigo para generar excel mediante spring mvc, de varias formas

Código PHP:
package com.controlador;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.view.document.AbstractExcelView;
import com.servicio.searchService;
import com.utils.excelReporte;
import com.utils.excelReporteTiempo;

.....................
@
Controller

public class inventoryControl {
..........................
 @
RequestMapping(value="/excelmvc")
    public 
ModelAndView list() {
        
logger.debug("generar reporte excel..");
    return new 
ModelAndView(new excelReporte());
    
    } 
usando el AbstractExcelView en mi clase excelReporte
Código PHP:
package com.utils;

import java.util.ArrayList
import java.util.Iterator
import java.util.Map

import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

import com.bean.*;

import org.apache.poi.hssf.usermodel.HSSFCellStyle
import org.apache.poi.hssf.usermodel.HSSFDataFormat
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 
excelReporte extends AbstractExcelView  {
    @
Override
    
protected    void buildExcelDocument (Map model
            
HSSFWorkbook workbook
            
HttpServletRequest request
            
HttpServletResponse responsethrows Exception {


            
// Set the response mode, perform this controller automatically download page, rather than direct use Excel to open 
            
response.setContentType ("APPLICATION / OCTET-STREAM"); 
            
//response.setHeader ("Content-Disposition","Attachment; filename =Excel.xls "); 
            
response.addHeader("Content-Disposition""attachment; filename=\"myexcel.xls\"");

            
// Construct data 
            
genericoBean stu1 = new genericoBean ("gaoxiang1""male1""20060101""1"); 
            
genericoBean stu2 = new genericoBean ("gaoxiang2""male2""20060102""2"); 
            
genericoBean stu3 = new genericoBean ("gaoxiang3""male3""20060103""3"); 
            
genericoBean stu4 = new genericoBean ("gaoxiang4""male4""20060104""4"); 
            
genericoBean stu5 = new genericoBean ("gaoxiang5""male5""20060105""5"); 
            
ArrayList stuList = new ArrayList (); 
            
stuList.add (stu1); 
            
stuList.add (stu2); 
            
stuList.add (stu3); 
            
stuList.add (stu4); 
            
stuList.add (stu5); 

            
// Excel header 
            
HSSFSheet sheet workbook.createSheet("studentList"); 
            
HSSFRow header sheet.createRow (0); // row 0 
            // Generate the title bar 
            
header.createCell ((short0).setCellValue ("name"); 
            
header.createCell ((short1).setCellValue ("sex"); 
            
header.createCell ((short2).setCellValue ("date"); 
            
header.createCell ((short3).setCellValue ("count"); 
            
HSSFCellStyle cellStyle workbook.createCellStyle (); 
            
cellStyle.setDataFormat (HSSFDataFormat.getBuiltinFormat ("mm / dd / yyyy")); 

            
// Fill data 
                     
int rowNum 1
            for (
Iterator iter stuList.iterator (); iter.hasNext () ;) {
            
genericoBean element = (genericoBeaniter.next (); 
            
HSSFRow row sheet.createRow (rowNum ++); 
            
row.createCell ((short0). setCellValue (element.getAttr1(). toString ()); 
            
row.createCell ((short1). setCellValue (element.getAttr2(). toString ()); 
            
row.createCell ((short2). setCellValue (element.getAttr3(). toString ()); 
            
row.getCell ((short2). setCellStyle (cellStyle); 
            
row.createCell ((short3). setCellValue (element.getAttr4()); 
            } 

            
// Column is calculated as the sum of 
            
HSSFRow row sheet.createRow (rowNum); 
            
row.createCell ((short0). setCellValue ("TOTAL:"); 
            
String formual "SUM (D2: D" rowNum ")"// D2 to D [rownum] cell Ki (count data) 
            
row.createCell ((short3). setCellFormula (formual); 

            } 


Y en el jsp
Código PHP:
....
<
a href="<%=request.getContextPath()%>/excelmvc.htm" >Download in Excel doc</a
  #2 (permalink)  
Antiguo 10/07/2013, 16:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: generar excel desde spring mvc

La segunda forma dentro del controlador es esta

Código PHP:

 
@RequestMapping(value ="/list/excel")
    public 
View listExcell() {
        return new 
AbstractExcelView() {
            @
Override
            
protected void buildExcelDocument(Map<StringObjectmodelHSSFWorkbook workbook,
                    
HttpServletRequest requestHttpServletResponse responsethrows Exception {
                
                
response.setContentType ("APPLICATION / OCTET-STREAM"); 
                
response.addHeader("Content-Disposition""attachment; filename=\"employee-list.xls\"");
                
logger.info("generando reporte excel..");

                
                
genericoBean stu1 = new genericoBean ("gaoxiang1""male1""20060101""1"); 
                
genericoBean stu2 = new genericoBean ("gaoxiang2""male2""20060102""2"); 
                
genericoBean stu3 = new genericoBean ("gaoxiang3""male3""20060103""3"); 
                
genericoBean stu4 = new genericoBean ("gaoxiang4""male4""20060104""4"); 
                
genericoBean stu5 = new genericoBean ("gaoxiang5""male5""20060105""5"); 
                
ArrayList stuList = new ArrayList (); 
                
stuList.add (stu1); 
                
stuList.add (stu2); 
                
stuList.add (stu3); 
                
stuList.add (stu4); 
                
stuList.add (stu5); 

                
// Excel header 
                
HSSFSheet sheet workbook.createSheet("studentList"); 
                
HSSFRow header sheet.createRow (0); // row 0 
                // Generate the title bar 
                
header.createCell ((short0).setCellValue ("name"); 
                
header.createCell ((short1).setCellValue ("sex"); 
                
header.createCell ((short2).setCellValue ("date"); 
                
header.createCell ((short3).setCellValue ("count"); 
                
HSSFCellStyle cellStyle workbook.createCellStyle (); 
                
cellStyle.setDataFormat (HSSFDataFormat.getBuiltinFormat ("mm / dd / yyyy")); 

                
// Fill data 
                         
int rowNum 1
                for (
Iterator iter stuList.iterator (); iter.hasNext () ;) {
                
genericoBean element = (genericoBeaniter.next (); 
                
HSSFRow row sheet.createRow (rowNum ++); 
                
row.createCell ((short0). setCellValue (element.getAttr1(). toString ()); 
                
row.createCell ((short1). setCellValue (element.getAttr2(). toString ()); 
                
row.createCell ((short2). setCellValue (element.getAttr3(). toString ()); 
                
row.getCell ((short2). setCellStyle (cellStyle); 
                
row.createCell ((short3). setCellValue (element.getAttr4()); 
                } 

                
// Column is calculated as the sum of 
                
HSSFRow row sheet.createRow (rowNum); 
                
row.createCell ((short0). setCellValue ("TOTAL:"); 
                
String formual "SUM (D2: D" rowNum ")"// D2 to D [rownum] cell Ki (count data) 
                
row.createCell ((short3). setCellFormula (formual); 

                
//} 
            
}
        };
    } 
Y en el jsp podemos poner lo siguiente

Código PHP:
<input type "button" onclick "javascript:window.location.href ='<%=request.getContextPath()%>/list/excel.htm'" value "download excel" /> 

<
a href="<%=request.getContextPath()%>/excelmvc.htm" >Download in Excel doc</a>
<
br>
<
a href="<%=request.getContextPath()%>/list/excel.htm" >Download in Excel2</a
:distraido

Etiquetas: clase, excel, jsp, mvc, servlet, spring, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.