zoukankan      html  css  js  c++  java
  • POI中excle样式怎么写

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:

    先获取工作薄对象:

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet();

    HSSFCellStyle setBorder = wb.createCellStyle();

    一、设置背景色:

    setBorder.setFillForegroundColor((short) 13);// 设置背景色
    setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    二、设置边框:

    public static CellStyle getStyle(Workbook wb ){
    CellStyle style = wb.createCellStyle();
    style.setBorderBottom(CellStyle.BORDER_THIN);
    style.setBorderLeft(CellStyle.BORDER_THIN);
    style.setBorderRight(CellStyle.BORDER_THIN);
    style.setBorderTop(CellStyle.BORDER_THIN);


    return style;
    }

    三、设置居中:

    style.setAlignment(CellStyle.ALIGN_CENTER);//水平居中 
    style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//垂直居中 

    四、设置字体:

    HSSFFont font = wb.createFont();
    font.setFontName("黑体");
    font.setFontHeightInPoints((short) 16);//设置字体大小

    HSSFFont font2 = wb.createFont();
    font2.setFontName("仿宋_GB2312");
    font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
    font2.setFontHeightInPoints((short) 12);

    setBorder.setFont(font);//选择需要用到的字体格式

    五、设置列宽:

    sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值

    六、设置自动换行:

    setBorder.setWrapText(true);//设置自动换行

    七、合并单元格:

    Region region1 = new Region(0, (short) 0, 0, (short) 6);

    //参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
    sheet.addMergedRegion(region1);

    八、加边框

      HSSFCellStyle cellStyle= wookBook.createCellStyle();
      cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
      cellStyle.setBorderBottom(HSSFCellStyle.BorderBORDER_MEDIUM);
      cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
      cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
      cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
      cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
      cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
      cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
      cellStyle.setTopBorderColor(HSSFColor.BLACK.index);

    一个不完整的例子:

    public static HSSFWorkbook generateExcelFiles(File file, StatisticQueryBean bean, List<WGLineBean> beans) {
    HSSFWorkbook wb = null;
    try {
    InputStream inputStream = new FileInputStream(file);
    wb = new HSSFWorkbook(inputStream);
    HSSFSheet sheet = wb.getSheet("sheet1");
    sheet.getRow(2).getCell(2).setCellValue(bean.getCarType());
    sheet.getRow(2).getCell(4).setCellValue(bean.getArea());
    sheet.getRow(2).getCell(6).setCellValue(bean.getStartTime() + "-" + bean.getEndTime());
    CellStyle style = getStyle(wb);
    int row = 4;
    for (WGLineBean model : beans) {
    HSSFRow rows = sheet.createRow(row);
    int col = 0;
    int quantity;
    try {
    quantity = model.getTotalQuantity();
    } catch (Exception e) {
    e.printStackTrace();
    quantity = 0;
    }
    for (int i = 0; i < 15; i++) {
    HSSFCell cell = rows.createCell(i);
    cell.setCellStyle(style);
    }
    sheet.getRow(row).getCell(col++).setCellValue(model.getRecordTime());
    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection1());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection1());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection2());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection2());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection3());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection3());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection4());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection4());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection5());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection5());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection6());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection6());

    sheet.getRow(row).getCell(col++).setCellValue(quantity - model.getSum_detection7());
    sheet.getRow(row).getCell(col++).setCellValue(model.getSum_detection7());
    row++;
    }
    } catch (Exception e) {
    e.printStackTrace();
    return wb;
    }
    return wb;
    }

     

  • 相关阅读:
    if、else if 、else及switch...case使用小记(C#)
    c#基础知识
    流与文本文件操作(C#)
    .NET中的异常处理机制(一)
    .NET中的异常处理机制(二)
    在引用类型变量上调用虚方法和非虚方法的区别
    各位客官!鼠标点击一个Button之后究竟发生了什么?您知道么?(C#)
    接口和抽象类的使用场景以及多类继承存在的问题(c#)
    面向对象SOLID设计原则之Open-Closed原则
    stack和stack frame
  • 原文地址:https://www.cnblogs.com/leixiaochen/p/8609549.html
Copyright © 2011-2022 走看看