使用Apache POI来操作excel文件

时间:2013-12-17 20:38:40

标签: apache-poi jython marathontesting

我正在尝试使用Jthon的Marathon测试工具编写测试。我正在使用Apache POI来读取/写入Excel文件。我对Jython和Apache POI都很陌生,所以这个问题对某些人来说似乎很简单,但我无法理解。我正在使用Cell接口中的getCell()函数,它可以很好地抓取单元格,但它为我打印的内容并不是我想要的。我想要整数值,但它返回一个浮点。

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(格式化为不包含任何小数点),但print idNum返回1.0

有关如何将其转换为字符串或整数的任何有用提示?或者可能有助于成功解决方法的任何其他想法?

1 个答案:

答案 0 :(得分:0)

Excel文件格式只有几种基本类型,如Numeric和String。大多数数字都存储为浮点值+格式规则。这就是为什么你得到一个双倍而不是一个int - 这就是文件中的简单内容!

Apache POI提供DataFormatter class,它采用浮点值和格式字符串,并尽力返回Excel中显示的数字字符串。对于你的情况,调用它可能会产生你想要的东西。