• 初识POI操作Excel


    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)

  • 相关阅读:
    【Codechef】Chef and Bike(二维多项式插值)
    USACO 完结的一些感想
    USACO 6.5 Checker Challenge
    USACO 6.5 The Clocks
    USACO 6.5 Betsy's Tour (插头dp)
    USACO 6.5 Closed Fences
    USACO 6.4 Electric Fences
    USACO 6.5 All Latin Squares
    USACO 6.4 The Primes
    USACO 6.4 Wisconsin Squares
  • 原文地址:https://www.cnblogs.com/wqff-biubiu/p/8946621.html
Copyright © 2020-2023  润新知