每次读取一行/仅读取特定列并创建对象

时间:2016-05-30 08:50:31

标签: java excel apache-poi

我使用Apache poi导入我桌面区域中的.xlsx文件。

使用下面的代码,我可以阅读我想要的孔页。

但是我想每次只读一行,每行只读取特定的列(例如我只想从第一行开始将A,F和G列保存为对象,然后将第二行保存为第三行,第三行线等)

我该怎么做?

public class main {
        public static void main( String[] args ) throws Exception {
            InputStream ExcelFileToRead = new FileInputStream("C:/User/Desktop/test.xlsx");
            XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);

            XSSFSheet sheet=wb.getSheetAt(0);
            XSSFRow row;
            XSSFCell cell;

            Iterator rows = sheet.rowIterator();


            while (rows.hasNext())
            {
                row=(XSSFRow) rows.next();
                Iterator cells = row.cellIterator();

                while (cells.hasNext())
                {
                    cell=(XSSFCell) cells.next();

                    if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING)
                    {
                        System.out.print(cell.getStringCellValue()+" ");
                    }
                    else if(cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
                    {
                        System.out.print(cell.getNumericCellValue()+" ");
                    }
                    else
                    {
                    }
                }
                System.out.println();
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

可以使用

Sheet对象中检索特定行
Sheet.getRow(index)

其中index是基于零的行号。也就是说,要读取第1行,必须获取索引为零的行,第2行为索引1,依此类推。类似地,可以使用

从其Row对象中检索特定单元格
Row.getCell(index)

index再次为基于零的单元格编号,其中单元格列A位于索引0处,列B位于索引1处,依此类推。因此,要在B2处检索Cell,您可以使用

Cell cell = Sheet.getRow(1).getCell(1);