如何使用rs.next()打印Excel工作簿中的所有行?
我正在读取一个有三列和多行的Excel工作簿,并使用rs.next()来打印所有行的值,但它只打印第一行值。
我尝试了以下两种,但总是只打印第一行,而rowscount = 1。
Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ltSet.CONCUR_READ_ONLY) Statement s = con.createStatement();
这是我的代码到目前为止。 有人可以告诉我如何获得所有行打印?
public static void main(String[] args) throws SQLException { Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=D:\\Test.xls"); //Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); Statement s = con.createStatement(); ResultSet rs = s.executeQuery("SELECT * FROM [Sheet1$]"); int rowcount=0; if(rs.next()) { String userid1=rs.getString("UserId"); System.out.println(userid1); ++rowcount; } System.out.println("Total number of records = " + rowcount); rs.close(); }
}
你必须使用while
循环而不是if
语句。
If
语句只执行一次,但不会循环以获得您想要的结果。
while(rs.next()) { String userid1=rs.getString("UserId"); System.out.println(userid1); ++rowcount; }
用上面的代码完全replace你的if块。
replace the if(rs.next()) with while(rs.next())