@author YHC
使用Java1.5 foreach 循环迭代遍历所有行和单元格
有时候你仅仅只想迭代遍历工作薄中的所有行(Row),或者行中所有的单元格,如果你使用的是Java5或者是更高版本,这个非常容易取得进行遍历
因为它将允许一种新的foreach循环支持工作.非常幸运,它很简单,Sheet和Row都实现了java.lang.Iterable接口支持foreach,对于行(Row)
而言,允许访问CellIterator内部类来支持迭代所有单元格,对于工作薄(Sheet)提供了rowIterator()进行迭代所有的行
//根据Workbook得到第个0下标的工作薄对象
Sheet sheet = wb.getSheetAt(0);
//遍历该工作薄中所有的行
for (Row row : sheet) {
//遍历一行中的所有的单元格
for (Cell cell : row) {
// 你需要实现功能的代码
}
}
获得单元格内容
得到一个单元格中的内容,你首先需要知道单元格是什么类型,(请求一个string类型的单元格,如果他的内容是数字类型,那么将抛出此异常NumberFormatException例如),你会想去转换单元格的类型,然后调用适当的getter方法得到单元格.
在以下代码,,我们将遍历一个工作薄中的所有的单元格,通过CellReference转换输出,然后输出Cell的内容;
// import org.apache.poi.ss.usermodel.* //记得导入这个包
//创建文件
File file=new File("D:/workbook.xls");
//初始化输入流
FileInputStream is = new FileInputStream(file);
//创建Excel,并指定Excel读取位置
Workbook wb=new HSSFWorkbook(is);
//根据Workbook得到第0个下标的工作薄
Sheet sheet1 = wb.getSheetAt(0);
//遍历工作薄中的所有行,注意该foreach只有Java5或者以上才支持
for (Row row : sheet1) {
//遍历行中的所有单元格 Java5+ 才能使用
for (Cell cell : row) {
//单元格的参照 ,根据行和列确定某一个单元格的位置
CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex());
//打印单元格的位置
System.out.print(cellRef.formatAsString());
//输出分隔符
System.out.print(" - ");
//得到单元格类型
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING://String类型单元格
//输出文本
System.out.println(cell.getRichStringCellValue().getString());
break;
case Cell.CELL_TYPE_NUMERIC://数字类型
//检查单元格是否包含一个Date类型
//仅仅只检查Excel内部的日期格式,
if (DateUtil.isCellDateFormatted(cell)) {
//输出日期
System.out.println(cell.getDateCellValue());
} else {
//输出数字
System.out.println(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN://Boolean类型
System.out.println(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA://公式
//输出公式
System.out.println(cell.getCellFormula());
break;
default:
System.out.println();
}
}
}
Excel内容如下图:创建该文件是用的POI
Excel 02 中的click me!!!,想看创建点该超链接!
读取该文件以及与运行该代码结果对比:
如有写错误的地方,请大家指出,thanks!
分享到:
相关推荐
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
JAVA POI Excel转Html,代码和所需的jar都在压缩包,项目在线预览需求,实现后分享下
poi excel 导入 导出poi excel 导入 导出poi excel 导入 导出poi excel 导入 导出poi excel 导入 导出poi excel 导入 导出
POI Excel官方源码及文档及实例 POI Excel官方源码及文档及实例 POI Excel官方源码及文档及实例
poi提供了excel转html的代码,但是吧,有好多问题。当有合并单元格时边框获取不到,单元格内的字体样式也转换不了,现在对poi提供的Tohtml.java做了一些修改,修复了这些问题,记录下,以备之后用到
为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 ...压缩包中包含POI的jar文件、POIExcel的jar文件及POIExcel的源码
利用POI读取excel写入到word 利用POI读取excel写入到word 利用POI读取excel写入到word,压缩包里包含了jar包
POI Excel 工具类POI Excel 工具类POI Excel 工具类POI Excel 工具类POI Excel 工具类
poi读写excel,poi总结; poi读写excel,poi总结 poi读写excel,poi总结
POI向excel中插入图片
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
poi 操作excel模板,读取数据后,讲数据填充到新生成的文件中且提供下载
POI操作Excel生成水印,该水印其实就是一个图片,该代码是将文字生成图片,再将图片变成水印的。
POI Excel最新官方开发包及文档 POI Excel最新官方开发包及文档 POI Excel最新官方开发包及文档
可以运行的POI导出Excel文件实例,里面有两种方法,一个是Servlet,一个是main
java_poi实现excel导入导出功能,有详细的注解
POI使用excel模板循环输出行到文件并导出的一个小例子
POI 删除excel列,可以设置多列,POI里怎么没有删除列的API呢
Poi excel 读取模板, 复制sheet表 表里面对行的复制的整合 如果看了还有不明白的地方,请留言,谢谢!
poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,