POI Excel 03,单元格边框样式,遍历所有行和单元格
程序员文章站
2022-07-13 14:25:55
...
@author YHC
工作薄 border边框样式:
//创建Excel
Workbook wb = new HSSFWorkbook();
//创建工作薄
Sheet sheet = wb.createSheet("new sheet");
//创建一个行对象,添加一些单元格到里面,Row的下标从0开始
Row row = sheet.createRow(1);
//创建一个单元格,并添加值到里面
Cell cell = row.createCell(1);
cell.setCellValue(4);
//这个样式是设置工作薄四周的边框的样式
CellStyle style = wb.createCellStyle();
//下边框
style.setBorderBottom(CellStyle.SOLID_FOREGROUND);
//下边框颜色
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());//黑色
//左边框
style.setBorderLeft(CellStyle.SOLID_FOREGROUND);
//左边框颜色
style.setLeftBorderColor(IndexedColors.BLUE.getIndex());//蓝色
//右边框
style.setBorderRight(CellStyle.SOLID_FOREGROUND);
//右边框颜色
style.setRightBorderColor(IndexedColors.YELLOW.getIndex());//黄色
//上边框
style.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED);//虚线
//上边框颜色
style.setTopBorderColor(IndexedColors.RED.getIndex());//红色
//设置单元格样式
cell.setCellStyle(style);
// 写入文件
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
运行后效果:
遍历所有的行和单元格:
有时候,你仅仅只想遍历工作薄中所有的行,或是行中所有的单元格,这个是允许的,只需要一个简单的循环便能完成此功能,
太幸运了,这个是如此简单,行对象(Row)中定义了一个内部类,CellIterator来处理迭代所有的单元格(得到其中的任
意一行,去调用row.cellIterator()),和工作薄提供了rowIterator()方法,提供一个迭代器遍历所有的行.另外
Sheet(工作薄)
and Row(行对象) 都实现了 java.lang.Iterable类,所以,使用Java1.5提供的
内置的"foreach"的支持,简单的利用foreach进行遍历,代码如下:
//根据Workbook对象得到工作薄
Sheet sheet = wb.getsheetat(0);
//得到行迭代器,遍历所有行
for (iterator<row> rit = sheet.rowiterator(); rit.hasnext(); ) {
//得到行对象
Row row = rit.next();
//根据行对象得到所有的单元格,遍历所有单元格
for (iterator<cell> cit = row.celliterator(); cit.hasnext(); ) {
//得到该单元格
Cell cell = cit.next();
// 你需要实现功能的代码...
}
}