0

我正在尝试从这样的 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 获取整数的最佳方法是什么?

4

2 回答 2

1

尝试添加

;IMEX=1

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

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

于 2010-11-09T14:34:02.487 回答
0

您必须将电话号码作为字符串读取,然后对其进行解析以去除不需要的字符。最后,将其转换为intusing Integer.parseInt(phoneNumberString)

于 2010-11-09T14:15:55.667 回答