1:Excel格式

2:ExcelUtil.java
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.reflect.Field; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.util.CellRangeAddress; /** * @作者 yan * @創建日期 * @版本 V1.0 * @描述 Excel 導出通用工具類 */ public class ExcelUtil { public static byte[] export(String sheetTitle, String[] title, List<Object> list) { HSSFWorkbook wb = new HSSFWorkbook();//創建excel表 HSSFSheet sheet = wb.createSheet(sheetTitle); sheet.setDefaultColumnWidth(20);//設置默認行寬 //表頭樣式(加粗,水平居中,垂直居中) HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 //設置邊框樣式 cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框 cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框 cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框 HSSFFont fontStyle = wb.createFont(); fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); cellStyle.setFont(fontStyle); //標題樣式(加粗,垂直居中) HSSFCellStyle cellStyle2 = wb.createCellStyle(); cellStyle2.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 cellStyle2.setFont(fontStyle); //設置邊框樣式 cellStyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框 cellStyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框 cellStyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框 cellStyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框 //字段樣式(垂直居中) HSSFCellStyle cellStyle3 = wb.createCellStyle(); cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 //設置邊框樣式 cellStyle3.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框 cellStyle3.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框 cellStyle3.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框 cellStyle3.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框 //創建表頭 HSSFRow row = sheet.createRow(0); row.setHeightInPoints(20);//行高 HSSFCell cell = row.createCell(0); cell.setCellValue(sheetTitle); cell.setCellStyle(cellStyle); sheet.addMergedRegion(new CellRangeAddress(0,0,0,(title.length-1))); //創建標題 HSSFRow rowTitle = sheet.createRow(1); rowTitle.setHeightInPoints(20); HSSFCell hc; for (int i = 0; i < title.length; i++) { hc = rowTitle.createCell(i); hc.setCellValue(title[i]); hc.setCellStyle(cellStyle2); } byte result[] = null; ByteArrayOutputStream out = null; try { //創建表格數據 Field[] fields; int i = 2; for (Object obj : list) { fields = obj.getClass().getDeclaredFields(); HSSFRow rowBody = sheet.createRow(i); rowBody.setHeightInPoints(20); int j = 0; for (Field f : fields) { f.setAccessible(true); Object va = f.get(obj); if (null == va) { va = ""; } hc = rowBody.createCell(j); hc.setCellValue(va.toString()); hc.setCellStyle(cellStyle3); j++; } i++; } out = new ByteArrayOutputStream(); wb.write(out); result = out.toByteArray(); } catch (Exception ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } finally{ try { if(null != out){ out.close(); } } catch (IOException ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } finally{ try { wb.close(); } catch (IOException ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } } } return result; } }
3:測試
public static void main(String[] args) { String sheetTitle = "用戶信息"; String[] title = {"姓名", "年齡"}; List<Object> list = new ArrayList<Object>(); for(int i=0;i<10;i++){ User u = new User(); u.setUname("張三"+i); u.setAge(10+i); list.add(u); } byte b[] = ExcelUtil.export(sheetTitle, title, list); File f = new File("G:\\tmp\\"+sheetTitle+".xls"); try { FileUtils.writeByteArrayToFile(f, b, true); } catch (IOException ex) { Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex); } }
4:依賴包
commons-io-2.4.jar
poi-3.15.jar
