1. 程式人生 > >初識POI操作Excel

初識POI操作Excel

org poi headers ring nts tin 單元 可用 pat

org.apache.poi提供開源的Excel工具包

jar包:

poi.jar

poi-ooxml.jar

poi-ooxml-schemas.jar

簡單的操作流程:

//創建excel文件
SXSSFWorkbook wb = new SXSSFWorkbook();
//創建sheet 可用循環控制sheet大小
if(){

Sheet sheet = wb.creatSheet();
//創建header
Row row = sheet.createRow((int) 0);//創建一行
row.setHeightInPoints(12);//行高12
CellStyle styleInfo = wb.createCellStyle();//
創建單元style styleInfo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// styleInfo.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index);//設置單元背景顏色 Font font = ((XSSFCellStyle) styleInfo).getFont();//獲得字體 font.setFontName("微軟雅黑"); font.setFontHeightInPoints((short) 10);//10號字 Cell cell = null; for (int j = 0; j < headers.length; j++) {//
head是菜單 sheet.setColumnWidth(j, 4000);//設置列寬 cell = row.createCell(j);//行創建單元 cell.setCellValue(headers[j]);//設置單元value即菜單名字 cell.setCellStyle(styleInfo);//設置單元style } //創建header成功 //創建body CellStyle styleInfo = wb.createCellStyle(); Font font = ((XSSFCellStyle) bodyStyleInfo).getFont(); font.setFontName("微軟雅黑"); font.setFontHeightInPoints((
short) 10);//10號字 int index = 0; for(int n = 0;n < num_end;n++){num_end-->Collection<Object[]>中collection的大小 index++;//從第二行開始 row = sheet.createRow((int) index); row.setHeightInPoints(12);//行高12 Object[] fields = Collection[n];//collection的循環遍歷,寫法看具體collection對象 for(int k = 0;k < fields.length;k++){// Cell cell = row.createCell(i); if(fields[k]==null){ cell.setCellValue(""); }else{ cell.setCellValue(fields[k].toString); cell.setCellStyle(styleInfo); } } } } ByteArrayOutputStream out = new ByteArrayOutputStream(); wb.write(out); out.toByteArray(); //Servlet下載 ServletOutputStream stream = response.getOutputStream(); stream.write(ExportExcelUtilPOI.exportExcel("采控需求", headers, list)); stream.flush(); stream.close();

面向對象建模:

文本----->Excel(sheet)--->sheet(row)---->row(style+cell)--->cell(value+style)

初識POI操作Excel