Java SpringMVC抽象视图
我尝试使用spring的AbstractXlsxView,但它只是提示下载应用程序/八位字节流文件类型,而不是excel文件 ExcelBuilder.javaJava SpringMVC抽象视图,java,spring-mvc,apache-poi,Java,Spring Mvc,Apache Poi,我尝试使用spring的AbstractXlsxView,但它只是提示下载应用程序/八位字节流文件类型,而不是excel文件 ExcelBuilder.java public class ExcelBuilder extends AbstractXlsxView { @Override protected void buildExcelDocument(Map<String, Object> model, Workbook workbook,
public class ExcelBuilder extends AbstractXlsxView {
@Override
protected void buildExcelDocument(Map<String, Object> model,
Workbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Sheet latePaymentsSheet = workbook
.createSheet("Late Payments");
setLatePaymentHeader(latePaymentsSheet);
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) model.get("map");
@SuppressWarnings("unchecked")
List<Map<String, Object>> latePaymentsList = (List<Map<String, Object>>) map
.get("latePayments");
setLatePaymentsRow(latePaymentsSheet, latePaymentsList);
}
@RequestMapping(value = "/export", method = RequestMethod.GET)
public ModelAndView exportToExcel() {
Map<String,Object> map = Dao.getData()
return new ModelAndView("ExcelBuilder", "map", map);
}
公共类ExcelBuilder扩展了AbstractXlsxView{
@凌驾
受保护的文档(地图模型,
工作簿,HttpServletRequest请求,
HttpServletResponse)引发异常{
工作表延迟付款工作表=工作簿
.createSheet(“逾期付款”);
设置LatePaymentHeader(latePaymentsSheet);
@抑制警告(“未选中”)
Map=(Map)model.get(“Map”);
@抑制警告(“未选中”)
列表latePaymentsList=(列表)映射
.获得(“延期付款”);
设置LatePaymentsRow(latePaymentsSheet,latePaymentsList);
}
Controller.java
public class ExcelBuilder extends AbstractXlsxView {
@Override
protected void buildExcelDocument(Map<String, Object> model,
Workbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Sheet latePaymentsSheet = workbook
.createSheet("Late Payments");
setLatePaymentHeader(latePaymentsSheet);
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) model.get("map");
@SuppressWarnings("unchecked")
List<Map<String, Object>> latePaymentsList = (List<Map<String, Object>>) map
.get("latePayments");
setLatePaymentsRow(latePaymentsSheet, latePaymentsList);
}
@RequestMapping(value = "/export", method = RequestMethod.GET)
public ModelAndView exportToExcel() {
Map<String,Object> map = Dao.getData()
return new ModelAndView("ExcelBuilder", "map", map);
}
@RequestMapping(value=“/export”,method=RequestMethod.GET)
公共模型和视图exportToExcel(){
Map Map=Dao.getData()
返回新的ModelAndView(“ExcelBuilder”、“地图”、“地图”);
}
Excel view.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="ExcelBuilder" class="com.test.utility.ExcelBuilder">
</bean>
</beans>
您可以更改@RequestMapping并添加
products
属性
@RequestMapping(value = "/export", method = RequestMethod.GET, produces="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
有关其他Mime类型,请参阅。您可以设置文件类型作为响应,如下所示:
public ModelAndView exportPaymentReport(HttpServletResponse response) {
response.setContentType( "application/ms-excel" );
response.setHeader( "Content-disposition", "attachment;filename=myfile.xls" );
}