初識POI操作Excel
阿新 • • 發佈:2018-04-25
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