2016-05-30 110 views
0

我使用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

你有沒有[嘗試閱讀遍歷行和單元格在Apache POI文件(http://poi.apache.org/spreadsheet/quick-guide。 HTML#迭代器)?所有這一切?當你做什麼時會發生什麼? (提示 - 您需要的答案在文檔中!) – Gagravarr

回答

1

特定行可以使用

Sheet.getRow(index) 

index爲從零開始的行號的Sheet對象進行檢索。也就是說,要讀取第1行,您必須獲取索引爲零的行,第2行在索引爲1,依此類推。類似地,特定的細胞可以檢索從它的使用

Row.getCell(index) 

再次索引對象是其中細胞塔A是在索引0處基於零細胞數,B列是在索引1等。因此,在B2檢索單元,你可以使用

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