在做一个电子表格时,边框的设置有时是必不可少的。这一节就来介绍边框,设置时,可以指定边框的位置,边框的种类,边框的顔色。
首先是边框的位置和种类。对单元格设置边框时,有上下左右位置之分,所以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_DOT |
dash-dot border |
BORDER_DASH_DOT_DOT |
dash-dot-dot border |
BORDER_DASHED |
dash border |
BORDER_DOTTED |
dot borderhair-line border |
BORDER_DOUBLE |
double-line border |
BORDER_HAIR |
hair-line border |
BORDER_MEDIUM |
Medium border |
BORDER_MEDIUM_DASH_DOT |
medium dash-dot border |
BORDER_MEDIUM_DASH_DOT_DOT |
medium dash-dot-dot border |
BORDER_MEDIUM_DASHED |
Medium dashed border |
BORDER_NONE |
No border |
BORDER_SLANTED_DASH_DOT |
slanted dash-dot border |
BORDER_THICK |
Thick border |
BORDER_THIN |
Thin 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);
}
}
运行结果如下:

分享到:
相关推荐
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
Apache POI 提供了`CellStyle`接口,通过这个接口我们可以设置单元格的各种样式,包括字体、边框、对齐方式以及填充颜色。在设置填充颜色时,我们需要使用`FillPatternType`和` IndexedColors`。`FillPatternType`...
描述:这份资料提供了全面的Apache POI操作指南,尤其聚焦于如何在Excel文档中通过Java进行单元格格式的自定义设置,包括背景色、边框样式、对齐方式、字体设置、列宽调整、自动换行及单元格合并等,附带了详细的...
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
POI允许开发者对单元格进行细致的样式设置,包括边框样式、背景颜色、字体格式、对齐方式等。 ##### 5.1 POI样式相关类 - **HSSFCellStyle**:用于设置单元格样式。 - **HSSFColor**:用于设置单元格的颜色。 - **...
以上就是关于使用 POI 设置 Excel 单元格格式的详细说明,包括背景色、边框、居中、字体、列宽、自动换行以及合并单元格等操作。这些技巧可以帮助开发者更加灵活地控制 Excel 文件的格式,从而提升数据的可读性和...
6. **格式化和样式**:Java POI允许你设置单元格的样式,包括字体、颜色、对齐方式、边框等。首先,你需要创建一个`CellStyle`对象,然后使用`Font`对象设置字体属性。最后,将样式应用到单元格上。 7. **读取数据*...
本示例将详细讲解如何使用C++实现设置边框、设置背景色以及合并单元格的功能,以创建一个完整的Excel文件。 首先,我们需要一个库来支持Excel文件的操作。在C++中,通常我们会选择如libxl、pandas或者开源的Apache ...
POI允许你设置文本样式,包括字体、颜色、对齐方式、边框等。对于Excel,还可以处理单元格的数字格式,如日期、货币或百分比。 5. **公式处理**: 在Excel文件中,POI可以读取和计算单元格中的公式结果,也可以...
在3.7版本中,主要包含了对Excel表格的样式处理增强,例如单元格的字体、颜色、边框等,同时也提升了性能和稳定性。 2. **POI 3.8**: 该版本是在3.7的基础上进行了更新,发布于2011年。POI 3.8引入了更多功能,比如...
这个版本还可能支持样式管理,包括字体、颜色、边框和填充。 2. POI-3.16: 在3.16版本中,POI项目可能进一步增强了性能和稳定性,修复了一些已知的问题。新特性可能包括增强的事件模型,这使得在处理大型Excel...
本文将深入探讨如何使用JXL进行Excel操作,特别是关于边框设置和单元格设置的细节。 首先,要使用JXL,需要将其添加到项目依赖中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
4. **样式与格式**:POI支持设置单元格的字体、颜色、对齐方式、边框样式等,也可以创建复杂的表格样式,如条件格式、数据验证等。 5. **模板处理**:利用Apache POI,开发者可以创建Excel模板,然后在运行时动态...
如果需要,我们还可以使用 `CellStyle` 对象来设置单元格的字体、颜色、边框等样式。例如,创建一个文本样式并将其应用于单元格: ```java CellStyle textStyle = workbook.createCellStyle(); textStyle....
Apache POI允许你设置单元格的数据类型,包括数值、字符串、日期、布尔值等。此外,你还可以定制单元格的样式,比如字体、颜色、边框、对齐方式等。`HSSFCellStyle`类提供了丰富的样式设置方法。 **四、公式与图表*...
本文总结了 POI-excel 的一些常用方法和样式设计,包括读取 Excel 文件、获取单元格内容、设置单元格内容、读取单元格内容、设置列宽和行高、添加区域和合并单元格、常用方法和常用单元格边框格式等。
5. 设置样式:Apache POI提供了CellStyle对象,可以用来设置单元格的字体、颜色、对齐方式、边框等样式。 6. 写入和保存:完成数据填充和样式设置后,可以通过Workbook的write()方法将工作簿写入到OutputStream,...
- `HSSFCellStyle` 用于设置单元格的样式,包括边框、填充、对齐等。 3. **开始编码**: - 创建工作簿(Workbook):`HSSFWorkbook wb = new HSSFWorkbook();` - 创建工作表(Sheet):`HSSFSheet sheet = wb....