Рубрики
Без рубрики

Файл Spring MVC и Excel с помощью AbstractExcelView

– Файл Spring MVC и Excel с помощью AbstractExcelView

Автор оригинала: mkyong.

Spring MVC поставляется с AbstractExcelView классом для экспорта данных в файл Excel через POI Apache библиотека. В этом уроке показано использование AbstractExcelView класса в приложении Spring MVC для экспорта данных в файл Excel для загрузки.

1. POI апача

Получите Библиотеку POI Apache для создания файла excel.

    
   
	org.apache.poi
	poi
	3.6
   

2. Контроллер

Класс контроллера, создайте фиктивные данные для демонстрации и получите параметр запроса, чтобы определить, какое представление возвращать. Если параметр запроса равен “EXCEL”, то верните представление Excel ( AbstractExcelView ).

Файл: RevenueReportController.java

package com.mkyong.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. Абстрактный вид

Создайте представление Excel, расширив класс abstractexcelview и переопределив метод buildExcelDocument() для заполнения данных в файл Excel. AbstractExcelView использует API POI Apache для создания сведений о файле Excel.

Файл: ExcelRevenueReportView.java

package com.mkyong.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 {
	
		Map revenueData = (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());
                }
	}
}

4. Конфигурация пружины

Создайте XmlViewResolver для представления Excel.



  

	

	
		
			/WEB-INF/spring-excel-views.xml
		
	


Файл: spring-excel-views.xml

   
   

5. Демонстрация

URL: http://localhost:8080/SpringMVC/revenuereport.htm?output = превосходить

Он генерирует файл Excel для загрузки пользователем.

Скачать Исходный Код

Рекомендации

  1. POI апача
  2. AbstractExcelView Javadoc Абстрактный
  3. Spring MVC экспортирует данные в файл Excel с помощью Abstractexcelview
  4. Пример решения Spring MVC XmlViewResolver

Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-export-data-to-excel-file-via-abstractexcelview/”