zoukankan      html  css  js  c++  java
  • 初识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)

  • 相关阅读:
    PI SQL 语句
    MySQL数据库远程访问权限如何打开(两种方法)
    Ajax 实现无刷新分页
    php文件缓存方法总结
    PHP常用的缓存技术汇总
    PHP缓存机制详解
    用js判断页面刷新或关闭的方法
    基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
    jquery刷新页面
    一些JavaScript基本函数
  • 原文地址:https://www.cnblogs.com/wqff-biubiu/p/8946621.html
Copyright © 2011-2022 走看看