springBoot中Excel匯出
阿新 • • 發佈:2019-01-14
依賴
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10.1</version>
</dependency>
//工具類 package com.sk.springboot.Util; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; public class ExcelWriteUtil { public static HSSFWorkbook getHSSFWorkbook(String sheetName, String []title, String [][]values, HSSFWorkbook wb){ if(wb == null){ wb = new HSSFWorkbook(); } HSSFSheet sheet = wb.createSheet(sheetName); HSSFRow row = sheet.createRow(0); HSSFCellStyle style = wb.createCellStyle(); HSSFFont font=wb.createFont(); font.setColor(HSSFColor.BLACK.index);//字型顏色 font.setFontHeightInPoints((short)12); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//字型增粗 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 建立一個居中格式 style.setFont(font); HSSFCell cell = null; //建立標題 for(int i=0;i<title.length;i++){ cell = row.createCell(i); cell.setCellValue(title[i]); cell.setCellStyle(style); } //建立內容 for(int i=0;i<values.length;i++){ row = sheet.createRow(i + 1); for(int j=0;j<values[i].length;j++){ row.createCell(j).setCellValue(values[i][j]); } } return wb; } }
//測試實現類 package com.sk.springboot.Util; import com.feibo.shikai.springboot.domain.UserD; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; public class ExcelTest { public void exportExcelApiInterfaceLog(HttpServletResponse response) { String filename = "ExcelName.xls"; try { this.setResponseHeader(response,filename); HSSFWorkbook wb=this.writeExcel(); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } } public void setResponseHeader(HttpServletResponse response, String fileName) { try { response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8")); } catch (Exception ex) { ex.printStackTrace(); } } public HSSFWorkbook writeExcel(){ //需要寫入的實體類,此處我模擬一個實體類 UserD u =new UserD(); u.setId(1L); u.setName("sk"); u.setPwd("123"); u.setAccount("234"); List userList = new ArrayList(); userList.add(u); String sheetName="ExcelSheet-Name"; String[][] values = new String[userList.size()][]; String[] titles = null; titles= new String[]{"id","name","pwd","account"}; for (int i = 0; i <userList.size() ; i++) { values[i] = new String[titles.length]; //將物件內容轉換成string UserD obj = (UserD) userList.get(i); values[i][0] = obj.getId().toString(); values[i][1] = obj.getName(); values[i][2] = obj.getPwd(); values[i][3] = obj.getAccount(); } HSSFWorkbook wb=ExcelWriteUtil.getHSSFWorkbook(sheetName,titles,values,null); return wb; } }