2013-12-17 4 views
0

Jython으로 Marathon 테스트 도구를 사용하여 테스트를 작성하려고합니다. 나는 아파치 POI를 사용하여 엑셀 파일을 읽고 쓰고있다. 나는 자이 썬과 아파치 POI에 대해 매우 익숙하다. 그래서이 질문은 아주 단순 해 보일지 모르지만 나는 그걸 지나갈 수 없다. 나는 Cell 인터페이스에서 getCell() 함수를 사용하고 있는데 셀을 잡아 먹지만 내용이 저를 위해 인쇄됩니다. 정수 값을 원하지만 부동 소수점을 반환합니다.Apache POI를 사용하여 Excel 파일 조작

for r in range(1, rowsBusiness): 
    row = sheetBusiness.getRow(r) 
    idNum = row.getCell(0) # it is returning double values here 
    print idNum 
    print idNum.getStringCellValue() 

나는 그것이 내가 문자열 또는 정수로 변환 할 수 있습니다로 너무 오래 두 배 값을 반환 괜찮 해요 내가 정수로 문자열에서 변환을 테스트하거나 오류를 뱉어하고있어 응용 프로그램,하지만 내가 할 수 있기 때문에 double에서 변환하는 방법을 알아 내고 소수점을 제거하십시오. getStringCellValue() 함수는 idNum에서 작동하지 않습니다. 그냥 비워두면 테스트가 멈추게됩니다. Excel 파일을 포맷하여 참조하는 셀의 정수 값만 가져옵니다. 예를 들어, excel 파일에서 값 1 (소수점을 포함하지 않도록 포맷 됨)을 갖지만 인쇄 idNum은 1.0을 반환합니다.

문자열 또는 정수로 가져 오는 방법에 대한 유용한 힌트가 있습니까? 또는 성공적인 대안에 기여할 수있는 다른 아이디어입니까?

답변

0

Excel 파일 형식에는 숫자 및 문자열과 같은 몇 가지 기본 형식 만 있습니다. 대부분의 숫자는 부동 소수점 값 + 서식 규칙으로 저장됩니다. 그래서 int가 아닌 double을 얻는 것입니다. 간단하게 파일에 존재하는 것입니다!

Apache POI는 DataFormatter class을 제공하며 부동 소수점 값과 형식 문자열을 사용하며 Excel에 표시된 것처럼 숫자 문자열을 반환하는 것이 가장 좋습니다. 당신의 경우, 전화하면 그 사람이 낳은 ​​것을 얻을 수 있습니다.

+0

DataFormatter 클래스가 트릭을 수행하는 것으로 보입니다. –

관련 문제