2012-09-18 5 views
0

나는 엑셀 파일을 읽기위한 약간의 코드를 작성 중이다. 이 시점에서 나는 세포의 유형을 결정하려고합니다.SCALA POI API. Can not access Field

val wb:HSSFWorkbook= new HSSFWorkbook(fileInput) 
    val sheet:HSSFSheet = wb.getSheetAt(0); 
    val rows = sheet.rowIterator() 

    while(rows.hasNext()){ 
    var row = rows.next() 
    val cells = row.cellIterator() 
    while(cells.hasNext()){ 
    val cell = cells.next() 
    println(cell.getCellType()== org.apache.poi.hssf.usermodel.HSSFCell.CELL_TYPE_NUMERIC)}}  

내가이 분야에 액세스 할 수없는 이유는 그나마

value CELL_TYPE_NUMERIC is not a member of object org.apache.poi.hssf.usermodel.HSSFCell 

이해했다. 그것에 도움을주십시오.

안부

답변

3

스칼라는 정적 필드를 조금 다르게 처리합니다. 스칼라에는 정적 필드가 없으므로 scala는 java 클래스의 정적 필드에 대해 가상 object을 만듭니다. CELL_TYPE_NUMERICorg.apache.poi.hssf.usermodel.HSSFCell에 정의되어 있지 않으므로 org.apache.poi.ss.usermodel.Cell에 있으므로 정적 멤버에서는 상속이 고려되지 않으므로 여기에서 액세스 할 수 없습니다. 당신은 직접 필드에 액세스 할 수 있습니다

scala> org.apache.poi.ss.usermodel.Cell.CELL_TYPE_NUMERIC 
res1: Int = 0 

상속이 고려 된 경우,이 방법 스칼라 object의 작품과 불일치로 이어질 것입니다. 스칼라에서 컴패니언 객체는 클래스 수퍼 클래스의 동반자로부터 아무 것도 상속받지 않습니다.

+0

작동 중입니다. 도움 주셔서 대단히 감사합니다. – user1176316