如何使用rs.next()打印Excel工作簿中的所有行?

时间:2014-11-19 04:34:19

标签: java 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();


    }

}

2 个答案:

答案 0 :(得分:1)

您必须使用while循环而不是if语句。

If语句只会执行一次,但不会循环以获得所需的结果。

while(rs.next())
{                    
  String userid1=rs.getString("UserId");
  System.out.println(userid1);
  ++rowcount;
}

完全用上面的代码替换你的if块。

答案 1 :(得分:0)

replace the if(rs.next()) with while(rs.next())