Java 使用带前导零的POI HSSFCell读取excel

Java 使用带前导零的POI HSSFCell读取excel,java,excel,poi-hssf,Java,Excel,Poi Hssf,我正在尝试使用Java POI HSSF读取excel文件。一切正常,只是当值为001001时,HSSFCell将返回1001.0 是否有任何方法可以使用HSSFCell获取001001值 我不应该对excel文件做任何修改 提前感谢您的帮助和建议 编辑 我一直在使用以下代码: cell.setCellType(cell.cell\u TYPE\u字符串); cell.toString() 我还运行了一个调试模式,并在HSSF获取单元格值时检查该单元格值。它截断前导零并将其转换为双精度,因此我看

我正在尝试使用Java POI HSSF读取excel文件。一切正常,只是当值为001001时,HSSFCell将返回1001.0

是否有任何方法可以使用HSSFCell获取001001值

我不应该对excel文件做任何修改

提前感谢您的帮助和建议

编辑

我一直在使用以下代码:

cell.setCellType(cell.cell\u TYPE\u字符串); cell.toString()

我还运行了一个调试模式,并在HSSF获取单元格值时检查该单元格值。它截断前导零并将其转换为双精度,因此我看不到检索截断零的方法。有一个链接指出这可能是HSSF的错误:


顺便说一下,我通过硬编码解决了这个问题。数字的数量是预先知道的。我使用的代码链接:

你能试着把它读成字符串而不是数字吗

cell.setCellType(Cell.CELL_TYPE_STRING);
更改单元格类型通常不会修改单元格的内容。 可以使用以下任一方法检索该文件:

cell.getStringCellValue();

cell.getRichStringCellValue().getString();

尝试将其作为字符串读取我尝试了cell.setCellType(cell.cell\u TYPE\u STRING);前一行。它有助于避免区分是数值还是字符串值的需要。我还尝试了另外两行代码,仍然得到了1001。我以前是在调试模式下运行的。从HssfCell值中,我可以看出该值为1001.0,那么如果该值已被截断,它如何知道返回2前导零?这个问题是区分2.0和2的数据值。以字符串格式读取文件。因此,代码:cell.setCellType(cell.cell\u TYPE\u STRING)将起作用。对于我的情况,我希望保留前导零:001001,但我一直得到1001或1001.0