ssm應用中Excel的導出


1 SSM框架搭好,推薦:https://www.cnblogs.com/zyw-205520/p/4771253.html

2 jsp頁面中弄個a標簽,href為請求地址
    <a href="downloadLog">導出操作記錄</a>

3 controller中使用一個RequestMapping進行處理
    @RequestMapping(value="/downloadLog")
    返回視圖為對象視圖,bean的名字
    返回到自定義視圖解析器中,map數據傳到Map參數參數中

  //查詢數據庫,把要下載的數據全部查詢出來,然后進行處理
        List<Tb_borrow_wish_op_detail> list=opService.selectAll();
        ModelAndView view=new ModelAndView();
        view.setViewName("productOpLogView");  //ProductOpLogView 類在spring中定義的bean的id
        view.addObject("list", list);     //要填充到表格中的數據,作為參數傳遞到下面的arg0
        return view;

4 返回值為BeanNameViewResolver,添加導出excel的插件org.apache.poi
    <!-- 導出excel的插件 -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.9</version>
    </dependency>

5 spring mvc中添加對象視圖解析器
    <!-- 對象視圖解析器 -->
    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
        <property name="order" value="1"></property>
    </bean>

6 新建一個類ProductOpLogView 繼承 org.springframework.web.servlet.view.document.AbstractXlsView
  重寫protected void buildExcelDocument(Map<String, Object> arg0, Workbook arg1, HttpServletRequest arg2,
            HttpServletResponse arg3) throws Exception
    在其中完成表格的生成,以及表格的輸出(瀏覽器中彈出下載框)
    //彈出下載框的主要代碼:
   response.setHeader("content-disposition", "attachment;filename=file.xls"); //彈出下載框

   response.setContentType("application/ms-excel; charset=UTF-8"); //導出數據格式為表格

   新建的類ProductOpLogView ,需要注入到spring容器中
  arg1作為工作簿,可以創建sheet(一個excel文件可以有多個sheet,每個sheet就是一個表格,每個sheet有多個row,每個row有多個cell)

    //創建表格的部分代碼

  Sheet sheet=workbook.createSheet();
        int rows=0;  //首行
        Row row=sheet.createRow(rows++);
        row.createCell(0).setCellValue("編號");
        row.createCell(1).setCellValue("產品名稱");
        row.createCell(2).setCellValue("產品類型");
        row.createCell(3).setCellValue("年利率");

  //表格中內容仿照着寫

自己對知識的一個梳理,希望對大家有幫助

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM