2012-03-31 5 views
2

4 열 1 행으로 구성된 샘플로 만든이 파일을 읽으려고합니다. 아래 코드는 Java read excel

package testjavaexcel; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.util.Date; 
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; 
/** 
* 

*/ 
public class TestJavaExcel { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     try { 
      FileInputStream fileInputStream = new FileInputStream("poi-test.xls"); 
      HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream); 
      HSSFSheet worksheet = workbook.getSheet("POI Worksheet"); 
      HSSFRow row1 = worksheet.getRow(0); 
      HSSFCell cellA1 = row1.getCell((short) 0); 
      String a1Val = cellA1.getStringCellValue(); 
      HSSFCell cellB1 = row1.getCell((short) 1); 
      String b1Val = cellB1.getStringCellValue(); 
      HSSFCell cellC1 = row1.getCell((short) 2); 
      boolean c1Val = cellC1.getBooleanCellValue(); 
      HSSFCell cellD1 = row1.getCell((short) 3); 
      Date d1Val = cellD1.getDateCellValue(); 

      System.out.println("A1: " + a1Val); 
      System.out.println("B1: " + b1Val); 
      System.out.println("C1: " + c1Val); 
      System.out.println("D1: " + d1Val); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

이 오류가 라인에서 나오는 .. 내가 즉, 아파치 POI를 사용하고있는 API를 테스트하기 위해 찍은 " HSSFRow ROW1 = worksheet.getRow (0);"출력은 다음과 같습니다

testjavaexcel.TestJavaExcel.main (TestJavaExcel.java:28) 자바 결과에서 스레드 "주요"java.lang.NullPointerException이의

예외 :이 왜 1

확실하지 않음 무슨 일이 일어 났는지 ... 똑바로 보이는 것 같아 .getCell() 메소드는 모두 비난 된 메소드를 가리키고 있지만 API를 가지고 어떻게 대체 할 수 있을지 모르겠다.

감사합니다,

업데이트 : 나는 새로운 방법이 getCell 짧은 형식을 사용하여 이전 버전 대신 INT 걸리면 것을 알아 냈다. 비추천 경고가 수정되었습니다. 나머지는 해결되지 않은 상태로 남아 있습니다. 또한 내가 포이 버전 엑셀 책 이름이 "POI 워크 시트"(정확한 이름)와 시트가 있어야합니다 3.8

+0

코드에서 28 번째 줄은'String b1Val = cellB1.getStringCellValue();' –

+0

입니다. 그래서 저는 28 번째 코드를 HSSFRow row1 = worksheet.getRow (0); netbeans에 의해 추가 된 클래스 및 코드 이후에 더 많은 주석이 있기 때문입니다. 그래서 여기에 28 행은 같지 않으므로 오류 행 –

+2

이 포함되므로 엑셀 책에 "POI 워크 시트"(정확한 이름)이라는 시트가 있습니다. –

답변

3

확인을 사용하고 있습니다.