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("年利率");
//表格中內容仿照着寫
自己對知識的一個梳理,希望對大家有幫助