POI设置边框

摘要:
对单元格设置边框时,有上下左右位置之分,所以POI也准备了四个不同的方法。值说明BORDER_DASH_DOTdash-dotborderBORDER_DASH_DOT_DOTdash-dot-dotborderBORDER_DASHEDdashborderBORDER_DOTTEDdotborderhair-lineborderBORDER_DOUBLEdouble-lineborderBORDER_HAIRhair-lineborderBORDER_MEDIUMMediumborderBORDER_MEDIUM_DASH_DOTmediumdash-dotborderBORDER_MEDIUM_DASH_DOT_DOTmediumdash-dot-dotborderBORDER_MEDIUM_DASHEDMediumdashedborderBORDER_NONENoborderBORDER_SLANTED_DASH_DOTslanteddash-dotborderBORDER_THICKThickborderBORDER_THINThinborder比如要在单元格下边框设置两重线的边框时,按如下方法:HSSFWorkbookworkbook=newHSSFWorkbook();HSSFCellStylestyle=workbook.createCellStyle();style.setBorderRight;下面再看看指定边框顔色。同样也分为上下左右边框来操作。

在做一个电子表格时,边框的设置有时是必不可少的。这一节就来介绍边框,设置时,可以指定边框的位置,边框的种类,边框的顔色。

首先是边框的位置和种类。对单元格设置边框时,有上下左右位置之分,所以POI也准备了四个不同的方法。

上部的边框:

setBorderTop
public void setBorderTop(short border)
set the type of border to use for the top
border of the cell 
Parameters:
  border - type

下部的边框:

setBorderBottom
public void setBorderBottom(short border)
set the type of border to use for the
bottom border of the cell 
Parameters:
  border - type

左侧的边框:

setBorderLeft
public void setBorderLeft(short border)
set the type of border to use for the
left border of the cell 
Parameters:
  border - type

右侧的边框:

setBorderRight
public void setBorderRight(short border)
set the type of border to use for the
right border of the cell 
Parameters:
  border - type

参数通过表示边框种类的short型值来指定。下面是定义在「HSSFCellStyle」类里可以被指定值的一览表。

值说明

BORDER_DASH_DOTdash-dot border
BORDER_DASH_DOT_DOTdash-dot-dot border
BORDER_DASHEDdash border
BORDER_DOTTEDdot borderhair-line border
BORDER_DOUBLEdouble-line border
BORDER_HAIRhair-line border
BORDER_MEDIUMMedium border
BORDER_MEDIUM_DASH_DOTmedium dash-dot border
BORDER_MEDIUM_DASH_DOT_DOTmedium dash-dot-dot border
BORDER_MEDIUM_DASHEDMedium dashed border
BORDER_NONENo border
BORDER_SLANTED_DASH_DOTslanted dash-dot border
BORDER_THICKThick border
BORDER_THINThin border

比如要在单元格下边框设置两重线的边框时,按如下方法:

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
style.setBorderRight(HSSFCellStyle.BORDER_THIN);

下面再看看指定边框顔色。同样也分为上下左右边框来操作。

上部的边框:

setTopBorderColor
public void setTopBorderColor(short color)
set the color to use for the top border 
Parameters:
  color -

下部的边框:

setBottomBorderColor
public void setBottomBorderColor(short color)
set the color to use for the bottom border 
Parameters:
  color -

左侧的边框:

setLeftBorderColor
public void setLeftBorderColor(short color)
set the color to use for the left border 
Parameters:
  color -

右侧的边框:

setRightBorderColor
public void setRightBorderColor(short color)
set the color to use for the right border 
Parameters:
  color -

仍然是通过参数来指定顔色,而且使用方法和前面一节也是一样。具体如下:

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
style.setRightBorderColor(HSSFColor.RED.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);

示例程序

实际动手做做吧。首先看看如何设置上下左右的边框。

import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.usermodel.HSSFPalette;
public class POISample{
  public static void main(String[] args){
    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet();
    HSSFRow row = sheet.createRow(1);
    HSSFCell cell1 = row.createCell((short)1);
    HSSFCell cell2 = row.createCell((short)2);
    HSSFCellStyle style1 = workbook.createCellStyle();
    style1.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
    style1.setBorderLeft(HSSFCellStyle.BORDER_DOUBLE);
    style1.setTopBorderColor(HSSFColor.GOLD.index);
    style1.setLeftBorderColor(HSSFColor.PLUM.index);
    cell1.setCellStyle(style1);
    HSSFCellStyle style2 = workbook.createCellStyle();
    style2.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);
    style2.setBorderRight(HSSFCellStyle.BORDER_DOUBLE);
    style2.setBottomBorderColor(HSSFColor.ORANGE.index);
    style2.setRightBorderColor(HSSFColor.SKY_BLUE.index);
    cell2.setCellStyle(style2);
    cell1.setCellValue("U & L");
    cell2.setCellValue("B & R");
    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample.xls");
      workbook.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
}

上面程序既改了顔色,也设置了上和左的边框各一个,右和下的边框各一个。

上下左右边框

下面再对边框种类进行各种各样的顔色改变来看看效果。

import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.util.HSSFColor;
public class POISample{
  static HSSFWorkbook workbook;
  public static void main(String[] args){
    workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet();
    HSSFRow row[] = new HSSFRow[5];
    for (int i = 0; i < 5 ; i++){
      row[i] = sheet.createRow(i);
    }
    HSSFCell cell[][] = new HSSFCell[5][3];
    for (int i = 0; i < 5; i++){
      for (int j = 0; j < 3 ; j++){
        cell[i][j] = row[i].createCell((short)j);
      }
    }
    setStyle(cell[0][0], "DASH_DOT",
                          HSSFCellStyle.BORDER_DASH_DOT);
    setStyle(cell[0][1], "DASH_DOT_DOT",
                          HSSFCellStyle.BORDER_DASH_DOT_DOT);
    setStyle(cell[0][2], "DASHED",
                          HSSFCellStyle.BORDER_DASHED);
    setStyle(cell[1][0], "DOTTED",
                          HSSFCellStyle.BORDER_DOTTED);
    setStyle(cell[1][1], "DOUBLE",
                          HSSFCellStyle.BORDER_DOUBLE);
    setStyle(cell[1][2], "HAIR",
                          HSSFCellStyle.BORDER_HAIR);
    setStyle(cell[2][0], "MEDIUM",
                          HSSFCellStyle.BORDER_MEDIUM);
    setStyle(cell[2][1], "MEDIUM_DASH_DOT",
                          HSSFCellStyle.BORDER_MEDIUM_DASH_DOT);
    setStyle(cell[2][2], "MEDIUM_DASH_DOT_DOT",
                          HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT);
    setStyle(cell[3][0], "MEDIUM_DASHED",
                          HSSFCellStyle.BORDER_MEDIUM_DASHED);
    setStyle(cell[3][1], "NONE",
                          HSSFCellStyle.BORDER_NONE);
    setStyle(cell[3][2], "SLANTED_DASH_DOT",
                          HSSFCellStyle.BORDER_SLANTED_DASH_DOT);
    setStyle(cell[4][0], "THICK", HSSFCellStyle.BORDER_THICK);
    setStyle(cell[4][1], "THIN", HSSFCellStyle.BORDER_THIN);
    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample.xls");
      workbook.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
  public static void setStyle(HSSFCell cell,
                          String bn, short border){
    HSSFCellStyle style = workbook.createCellStyle();
    style.setBorderBottom(border);
    style.setBottomBorderColor(HSSFColor.ORANGE.index);
    cell.setCellStyle(style);
    cell.setCellValue(bn);
  }
}

免责声明:文章转载自《POI设置边框》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇百度文库破解方法小米路由器3-R3 刷固件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【JAVA】POI生成EXCEL图表(柱状图、折线等)

1、使用excel工具自带的图形工具创建一个图: 2、绑定数据区域: 3、数据区域绑定完成,我们要做的就是将数据写入到数据区域中: 4、标记 5、POI 引入包 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency>...

poi读取word2003(.doc文档)中的表格

poi读取word2003(.doc文档)中的表格 Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API。在网上见到好多通过poi读取excel的文章,读写也很方便,和jxl有的一比。在这里,主要是poi对word中的表格数据读取。 具体见代码 1 import java.io.Fi...

iOS 杂笔-如何解决tableview显示错乱问题

解决自定义Tableviewcell显示错乱问题 要是要解决这个问题,就需要用到UITableviewCell的prepareForReuse方法 cell被重用如何提前知道? 重写cell的prepareForReuse 官方头文件中有说明.当前已经被分配的cell如果被重用了(通常是滚动出屏幕外了),会调用cell的prepareForReuse通...

使用qt帮助 查看样式表stylesheet的帮助文档

QCreactor帮助文档中搜索的关键字 Qt Style Sheets Examples 有所有控件的样式例子 Qt Style Sheets Reference 控件的所有属性 The Style Sheet Syntax 使用setStyleSheet的语法 有所有控件的样式例子Style Sheet UsageCustomizing the For...

Ext Js简单面板及工具栏的创建使用

面板是比较基础的组件,很多的组件都是在Panel的基础上封装、创建的,可以把面板理解为一个容器,可以存放一些更多的组件在里面让页面更好看、功能更完善。1.对于Panel中的tbar\bbar\buttons的创建使用(其中和下文中的divId即为页面中一个div标签的id) functiontestPanel1(divId) { var testP...

修改easyui默认datagrid的表格内字体大小,样式

如果项目中全局都要修改成某个样式, 找到easyui.css,修改easyui datagrid的表格字体样式,font-size是字体大小。 .datagrid-cell, .datagrid-cell-group, .datagrid-header-rownumber, .datagrid-cell-rownumber {margin:0;paddi...