1、導入jar包
<!-- poi實現excel導入導出 用於報表的導出--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency>
2、controller層
package com.ccc.demoboot.controller; import com.ccc.demoboot.domain.RiskUser; import com.ccc.demoboot.service.RiskUserService; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.util.List; @RestController public class UserReportController { @Autowired private RiskUserService riskUserService; @RequestMapping(value = "/UserInfoExcel", method = RequestMethod.GET) @CrossOrigin(origins = "*", maxAge = 3600) public void exportEnergyProExcel(HttpServletResponse response) { List<RiskUser> list =riskUserService.getUserByCompanyId(17) ;//查出數據庫數據 XSSFWorkbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("users");//創建一張表 Row titleRow = sheet.createRow(0);//創建第一行,起始為0 titleRow.createCell(0).setCellValue("序號"); titleRow.createCell(1).setCellValue("姓名");//第一列 titleRow.createCell(2).setCellValue("公司"); titleRow.createCell(3).setCellValue("添加人"); titleRow.createCell(4).setCellValue("郵箱"); titleRow.createCell(5).setCellValue("電話"); int cell = 1; for (RiskUser riskUser : list) { Row row = sheet.createRow(cell);//從第二行開始保存數據 row.createCell(0).setCellValue(cell); row.createCell(1).setCellValue(riskUser.getUserName());//將數據庫的數據遍歷出來 row.createCell(2).setCellValue(riskUser.getCompanyId()); row.createCell(3).setCellValue(riskUser.getDealUser()); row.createCell(4).setCellValue(riskUser.getEmail()); row.createCell(5).setCellValue(riskUser.getContactPhone()); cell++; } String fileName = "user用戶信息報表.xlsx"; OutputStream outputStream = null; try { fileName = URLEncoder.encode(fileName, "UTF-8"); //設置ContentType請求信息格式 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + fileName); outputStream = response.getOutputStream(); wb.write(outputStream); outputStream.flush(); outputStream.close(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }