2014-12-29 3 views
2

엑셀 시트에 =RANDBETWEEN(10, 20)을 저장했습니다.이 수식은 10-20 사이의 엑셀 시트에 임의 값을 생성합니다.이 5 개의 임의 값을 내 Java 프로그램에서 읽어야합니다.엑셀 시트에서 랜덤 셀 값을 읽는 중

비록이 기능이 내 엑셀 시트에서 다른 값을 제공하지만 자바 프로그램은 동일한 상수 값을 5 번 읽습니다. 어떻게 5 개의 임의의 값을 읽을 수 있습니까?

이 내가 한 일이다 : 나는이 얻을

public class JavaApplication1 { 
    public static void main(String[] args) { 
     try { 
      for (int i = 0; i < 5; i++) { 
       FileInputStream fileInputStream = 
        new FileInputStream("C://users/user/Desktop/C.xls"); 
       HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream); 
       HSSFSheet worksheet = workbook.getSheet("POI Worksheet"); 
       HSSFRow row1 = worksheet.getRow(0); 
       HSSFCell cellA1 = row1.getCell((short) 0); 
       double a1Val = cellE1.getNumericCellValue(); 
       System.out.println("A1: " + a1Val); 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

출력을 :

A1: 12.0 
A1: 12.0 
A1: 12.0 
A1: 12.0 
A1: 12.0 

가 어떻게 내 프로그램은 다섯 개 가지 값을 읽을 수 있도록 할 수 있습니까?

답변

0

당신은 항상 0 번째 행,하지만 라인에 5 회

HSSFRow row1 = worksheet.getRow(0); 

변경을 얻을 0

for (int i=0;i<5;i++) 
{ 
    // ... 
    HSSFRow row1 = worksheet.getRow(i); 
    // ... 
} 

i에 당신은0 번째, 1-ND를 얻을 것이다 ... 네 번째

+0

감사 그러나 이것은 임의의 정수부터 널 포인터 예외를 생성은 행 0에서만 존재하고 행 1. 당신이 다시 전화를 두지 생각 @lalitkumar –

+0

'RANDBETWEEN'에 아무것도 없다 Java에서 Excel 시트의 기능. – Ilya

1

i을 사용하여 동일한 셀 (A1)을 다섯 번 쿼리합니다. 이 값은 Excel에서 워크 시트를 열거 나 새로 고칠 때 계산됩니다. 왜 똑같은 셀을 빠르게 연속해서 쿼리하면 매번 다른 결과가 나올까?

왜 난수에 대해 Excel을 사용하는지 잘 모르겠습니다. Java에서 직접 생성 할 수없는 이유가 있습니까? 예를 들어 :

// Assuming 20 is your max, 10 your min 
Random random = new Random(); 
int yourRandomNumber = random.nextInt((20 - 10) + 1) + 10; 
+0

해결책을 제안 할 수 있습니까? 어떻게하면 다른 값을 얻을 수 있습니까? –

+0

@lalitkumar 일부 샘플 Java 코드 – Ben

+0

thnks를 추가했지만 프로그램에서 임의의 값을 직접 생성하므로 엑셀 시트에서 임의의 값을 가져와야합니다. –

관련 문제