我正在尝试从这样的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获取整数的最佳方法是什么?
答案 0 :(得分:1)
尝试添加
;IMEX=1
到连接字符串。这指示驱动程序将混合数据(不同数据类型的数据)视为文本。
如果不工作,请尝试添加IMEX=1
指令to the SQL statement。如果仍然不起作用,则有以下选项:使用Apache POI;将Excel工作表转换为CSV;使用Office自动化显式设置列的数据类型;重做价值(即通过应用一些substring
操作等)。
答案 1 :(得分:0)
您必须将电话号码作为字符串读取,然后解析它以消除不需要的字符。最后,使用int
将其转换为Integer.parseInt(phoneNumberString)
。