java excel文件读取的内容_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();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值