如何使用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())