2013-12-17 123 views
0

我正在嘗試使用帶有Jython的Marathon測試工具編寫測試。我正在使用Apache POI來讀取/寫入Excel文件。我對Jython和Apache 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文件格式只有一些基本類型,如數字和字符串。大多數數字都被存儲爲浮點值+格式規則。這就是爲什麼你回來了一個不是一個整數 - 這只是生活在文件中!

Apache POI提供了DataFormatter class,它採用浮點值和格式字符串,並盡最大努力返回Excel中所示數字的字符串。對於你的情況,調用它可能會產生你以後的結果。

+0

DataFormatter類似乎有伎倆。 –