【01】java操作excel,循环遍历

使用org.apache.poi包下的HSSF相关方法,先后操作工作簿workbook、sheet、row、cell,最终定位到具体的单元格,getValue(cell)获得的都是String类型。

只取一行的时候,rowNum=1(因为rowNum=0的时候,取的是表头,也就是字段名称,不是数据);

只取一列的时候,cellNum=0。

取多行多列的时候,嵌套两个for循环即可。

 

package com.course.coke.data;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;

public class Read {

    public static void main(String[] args) throws IOException {

        InputStream inputStream = new FileInputStream("/Users/poi.xls");
        POIFSFileSystem fs = new POIFSFileSystem(inputStream);
        HSSFWorkbook workbook = new HSSFWorkbook(fs);
        HSSFSheet sheet = workbook.getSheetAt(0);   // 获取第一个sheet页
        if (sheet == null){
            return;
        }
// 遍历row
        for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
            HSSFRow row = sheet.getRow(rowNum);
            if (row==null){
                continue;
            }
// 遍历列cell
            for (int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) {
                HSSFCell cell = row.getCell(cellNum);
                if (cell==null){
                    continue;
                }
                System.out.print(" "+getValue(cell));
            }
            System.out.println();

        }


    }

    private static String getValue(HSSFCell cell){
        if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){
            return String.valueOf(cell.getBooleanCellValue());
        }else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
            return String.valueOf(cell.getNumericCellValue());
        }else {
            return String.valueOf(cell.getRichStringCellValue());
        }
    }
}

运行结果如下:

 1.0 宋江 20.0
 2.0 张三 21.0
 3.0 李四 22.0
 4.0 王五 23.0
 5.0 朱六 24.0

 

posted @ 2021-01-20 14:12  愚人李愚  阅读(1504)  评论(0编辑  收藏  举报