我正在尝试从 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 获取整数的最佳方法是什么??
最佳答案
尝试添加
;IMEX=1
到连接字符串。这指示驱动程序将混合数据(不同数据类型的数据)视为文本。
如果它不起作用,请尝试添加IMEX=1
指令to the SQL statement 。如果这仍然不起作用,还有以下选项: 使用 Apache POI;将 Excel 工作表转换为 CSV;使用办公自动化显式设置列的数据类型;修改该值(即通过应用一些子字符串
操作等)。
关于Java:从Excel读取int作为字符串返回十进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4134424/