Java 将电话号码从双精度转换为整数
我使用ApachePOI从excel中获取电话号码Java 将电话号码从双精度转换为整数,java,type-conversion,apache-poi,Java,Type Conversion,Apache Poi,我使用ApachePOI从excel中获取电话号码 System.out.println( "---------->" + cell.getNumericCellValue() + "--" + (int) cell.getNumericCellValue() ); sel.setContactno(String.valueOf(cell.getNumericCellValue())); 输出: ---------->8.902305623E9--2147483647
System.out.println(
"---------->" + cell.getNumericCellValue() + "--" + (int) cell.getNumericCellValue()
);
sel.setContactno(String.valueOf(cell.getNumericCellValue()));
输出:
---------->8.902305623E9--2147483647
例外是
java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
我怎样才能正确地得到电话号码
java.lang.IllegalStateException-如果
getCellType()是CellType.STRING
最有可能的是cell.getNumericCellValue()
似乎不包含double。请验证您的excel数据
编辑:
我认为电话号码首先不应该是一个单一的实体。它可以由本地代码、国家代码等组成,这些代码可以包含特殊字符,如+
。因此,它绝对不应该是数字。这种组合应提供所需的灵活性。但这完全取决于您的/op需求
java.lang.IllegalStateException-如果
getCellType()是CellType.STRING
最有可能的是cell.getNumericCellValue()
似乎不包含double。请验证您的excel数据
编辑:
我认为电话号码首先不应该是一个单一的实体。它可以由本地代码、国家代码等组成,这些代码可以包含特殊字符,如
+
。因此,它绝对不应该是数字。这种组合应提供所需的灵活性。但这完全取决于您的/op要求。为什么电话号码是一个数字单元格值?您发布的代码使用的是getNumericCellValue
。异常提示您正在使用getStringCellValue
格式化程序可能是一个开始使用excel文件的好地方:查看此线程:为什么电话号码是数字单元格值?您发布的代码正在使用getNumericCellValue
。例外情况表明您正在使用getStringCellValue
Formatter可能是一个开始使用excel文件的好地方:看看这个线程:将电话号码作为字符串获取通常是更灵活还是更好的做法?考虑到它们通常包含非数字字符,如()-
,在我看来,这是一个更可靠的选择。@AustinSchäfer我认为电话号码首先不应该是一个单一的实体。它可以由本地代码、本地代码等组成,这些代码可以包含特殊字符,如+
。这种组合应提供所需的灵活性。但这完全取决于op的要求。对我来说是有意义的。谢谢你的快速回答!:)一般来说,将电话号码作为字符串获取是更灵活还是更好的做法?考虑到它们通常包含非数字字符,如()-
,在我看来,这是一个更可靠的选择。@AustinSchäfer我认为电话号码首先不应该是一个单一的实体。它可以由本地代码、本地代码等组成,这些代码可以包含特殊字符,如+
。这种组合应提供所需的灵活性。但这完全取决于op的要求。对我来说是有意义的。谢谢你的快速回答!:)