java excel读一列

时间:2015-08-06 21:51:29

标签: java excel apache-poi xssf

我有一个列(B),我需要获取B3和B20之间的所有值

这是我的代码

try {
            OPCPackage fs;

            fs =  OPCPackage.open(new File(getFilePath()));

            XSSFWorkbook wb = new XSSFWorkbook(fs);
            XSSFSheet sheet = wb.getSheet("Master column name - Used Car");
            XSSFRow row;
            CellReference cr = new CellReference("B3");

            row = sheet.getRow(4); 
            System.out.println(row);

但是如你所见,我得到一个值,我不知道如何获得B3单元格的值,直到B20

你可以帮忙吗

2 个答案:

答案 0 :(得分:1)

您是否尝试过更换此行:

CellReference cr = new CellReference("B3");

使用:

AreaReference ar = new AreaReference("B3:B20");

AreaReference ar = new AreaReference("B3:B20");

for (cr : ar.getAllReferencedCells()) {
    System.out.print(cr.formatAsString());
    System.out.print(" - ");
}
System.out.println();

答案 1 :(得分:1)

要从excel中读取某些列或单元格的值,您可以尝试使用

public static void readFromExcel2(){
    try{
        FileInputStream file = new FileInputStream(new File("java_excel.xlsx"));//place path of your excel file
        XSSFWorkbook workbook = new XSSFWorkbook(file);
        XSSFSheet sheet = workbook.getSheetAt(1);//which sheet you want to read

        Iterator<Row> rowIterator = sheet.iterator();
        while(rowIterator.hasNext()){
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while(cellIterator.hasNext()){

                Cell cell = cellIterator.next();
                if(cell.getColumnIndex()<2&&(cell.getRowIndex()>=3&&cell.getRowIndex()<=20)) {
                     {

                        switch (cell.getCellType()) {
                            case Cell.CELL_TYPE_NUMERIC:
                                System.out.print((int) cell.getNumericCellValue()+" \t" );
                                break;
                            case Cell.CELL_TYPE_BLANK:
                                System.out.print(" ");
                                break;
                            case Cell.CELL_TYPE_STRING: {
                                System.out.print(cell.getStringCellValue());
                            }

                        }
                    }
                }
            }
            System.out.println(" ");
        }
        file.close();
    }catch (Exception e){
        e.printStackTrace();
    }
}

}