Java:从Excel读取一个int作为字符串返回为十进制?

时间:2010-11-09 13:57:44

标签: java excel getstring

我正在尝试从这样的Excel文件中读取整数:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myExcel = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ="";" +
                      "DriverID=22;READONLY=false";
        con = DriverManager.getConnection(myExcel);
        stmt = con.createStatement();
rs = stmt.executeQuery("select * from [users$] where userid=" + userid);
while(rs.next()) {
    System.out.println(rs.getString("phone"));
}

问题:如果我们假设Excel表格中的电话= 123456,则rs.getString(“phone”)返回带小数0的整数,如“123456.0”

我知道我可以使用rs.getInt(“phone”),但手机有时会有“+”,“#”等字符。

使用rs.getString获取整数的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

尝试添加

;IMEX=1

到连接字符串。这指示驱动程序将混合数据(不同数据类型的数据)视为文本。

如果工作,请尝试添加IMEX=1指令to the SQL statement。如果仍然不起作用,则有以下选项:使用Apache POI;将Excel工作表转换为CSV;使用Office自动化显式设置列的数据类型;重做价值(即通过应用一些substring操作等)。

答案 1 :(得分:0)

您必须将电话号码作为字符串读取,然后解析它以消除不需要的字符。最后,使用int将其转换为Integer.parseInt(phoneNumberString)