Java编程:使用Java读取Excel文件内容

 微软的ODBC驱动程序把工作表中的第一行作为列名(译者注:即字段名),工作表名作为数据库表名。 

 要通过JDBC访问工作表,我们还必须创建一个新的ODBC数据源,在Windows 2000系统上创建数据源的过程如下:

 进入“控制面板” --> “管理工具” --> “数据源(ODBC)”,(译者注:打开后选择系统DSN),点击添加,在弹出窗口中选择“Driver do Microsoft Excel(*.xls)”

 然后在数据源名处输入一个名字myexcel(译者注:相当于数据库名),然后点击“选择工作簿”,然后找到并选取你要读取的Excel文件。点击确定,系统数据源列表中会出现你设置的数据源名称,点击确定完成配置。 

  注:现在如果我们想挑出test1列中的所有“测试”值,那就需要用以下的SQL查询:

  SELECT test1 FROM [Sheet1$] WHERE test1=‘测试‘

  要注意的是工作表名后面跟了一个“$”符号,这个符号是不可缺少的。因为他的前后有方括号,因为“$”是SQL语句中的保留字。

下面是例子程序:
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;

public class ExcelReader {

    public static void main( String[] args ) {

        Connection c = null;
        Statement stmnt = null;
        try {
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
            c = DriverManager.getConnection( "jdbc:odbc:myexcel", "", "" );
            stmnt = c.createStatement();
            String query = "SELECT test1 FROM [Sheet1$] WHERE test1=‘测试‘";
            ResultSet rs = stmnt.executeQuery( query );
            
            System.out.println( "查得匹配‘测试‘的test1的记录为:" );
            while( rs.next() ) {
                System.out.println( rs.getString( "test1" ) );
            }
        }
        catch( Exception e ) {
            System.err.println( e );
        }
        finally {
            try {
                stmnt.close();
                c.close();
            }
            catch( Exception e ) {
                System.err.println( e );
            }
        }
    }
}


另外,该程序为读取Excel中所有记录的程序: 
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.DriverManager; 

public class ExcelReader { 
  //ODBC连接Excel
  public static void main(String[] args) {
    Connection conn = null;
    Statement stm = null;
    ResultSet rs = null;
    try {
         //加载ODBC驱动
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         //创建连接对象
         conn = DriverManager.getConnection("jdbc:odbc:myexcel");
         stm = conn.createStatement();//创建Statement对象
         String sql = "select * from [sheet1$]";//查询excel中的工作表时后面要加上$符号并在最外层加上[]
         rs = stm.executeQuery(sql);//执行sql语句,得到查询结果集
         //遍历结果集
         while(rs.next()){
          //输出每一行记录的相关数据
          //System.out.println(rs.getString("name")+"-"+rs.getInt("age"));
          System.out.println(rs.getString(1)+"-"+rs.getInt(2));//可以通过上一行代码利用列名进行获取数据,也可以用列数来获取数据,列数从1开始
       }catch (ClassNotFoundException e) {
         e.printStackTrace();
      } catch (SQLException e) {
         e.printStackTrace();
      }finally{
         try {
              if (rs != null) {
                 rs.close();
              }
              if (stm != null) {
                 stm.close();
              }
              if (conn != null) {
                 conn.close();
              }
           } catch (SQLException e2) {
              e2.printStackTrace();
       }
    }
}

Java编程:使用Java读取Excel文件内容,布布扣,bubuko.com

Java编程:使用Java读取Excel文件内容

上一篇:Java HttpClient


下一篇:java中的构造块、静态块等说明