欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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();
运行后效果:

POI Excel 03,单元格边框样式,遍历所有行和单元格


遍历所有的行和单元格:

有时候,你仅仅只想遍历工作薄中所有的行,或是行中所有的单元格,这个是允许的,只需要一个简单的循环便能完成此功能,

太幸运了,这个是如此简单,行对象(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();
	        // 你需要实现功能的代码...
	      }
	    }


如果有写错的地方请大家指出,thanks!