SpringMVC学习--自定义Excel视图

本文详细探讨了在SpringMVC中如何实现自定义的Excel视图。通过控制器部分的设置和配置文件springmvc-config.xml的调整,阐述了生成并返回Excel文件的方法,为读者提供了一个完整的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 省略各种导包......  

/** 
 * 原先继承的是AbstractExcelView,但是已经过时了,打开源码,推荐使用 
 * AbstractXlsView / AbstractXlsxView / AbstractXlsxStreamingView 
 * 
 */  
public class ExportExcelViewResolver extends AbstractXlsView {  

    @Override  
    protected void buildExcelDocument(Map<String, Object> model, Workbook workbook, HttpServletRequest request,  
            HttpServletResponse response) throws Exception {  

        String fileName = "下载列表.xls";  
        response.setCharacterEncoding("UTF-8");  
        response.setContentType("application/ms-excel");// 文件下载  
        response.setHeader("Content-Disposition", "inline; filename=" + new String(fileName.getBytes(), "iso8859-1"));  
        OutputStream outputStream = response.getOutputStream();  

        HSSFWorkbook book = (HSSFWorkbook) workbook;  
        HSSFSheet sheet = book.createSheet();  

        HSSFRow row = sheet.createRow(0);  
        String[] headers = new String[] { "编号", "姓名", "年龄" };  
        for (int i = 0; i < headers.length; i++) {  
            row.createCell(i).setCellValue(headers[i]);  
        }  

        List<Student> stuList = (List<Student>) model.get("stuList");  
        for (int i = 0; i < stuList.size(); i++) {  
            Student stu = stuList.get(i);  

            row = sheet.createRow(i + 1);  
            row.createCell(0).setCellValue(i + 1);  
            row.createCell(1).setCellValue(stu.getName());  
            row.createCell(2).setCellValue(stu.getAge());  
        }  

        book.write(outputStream);  
        outputStream.flush();  
        outputStream.close();  

    }  
}  

controller部分:

@Controller  
@RequestMapping("/system")  
public class ExportExcelViewController {  

    @RequestMapping("/excel.do")  
    public String Excel(ModelMap map){  

        List<Student> stuList = new ArrayList<>();  

        Student stu = new Student();  
        stu.setName("zs1");  
        stu.setAge(27);  
        stuList.add(stu);  

        stu = new Student();  
        stu.setName("zs2");  
        stu.setAge(28);  
        stuList.add(stu);  

        stu = new Student();  
        stu.setName("zs3");  
        stu.setAge(29);  
        stuList.add(stu);  

        map.put("stuList", stuList);  

        return "exportExcel";  
    }  
}  

springmvc-config.xml 部分:

<!-- 注册excel视图解析器 -->  
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />  
<bean id="exportExcel" class="com.abc.crm.commons.web.filter.ExportExcelViewResolver" />  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值