通过jdbc-odbc桥来访问excel文件

                                                    通过jdbc-odbc桥来访问excel文件                                      pcera
        说是对文件的操作有点牵强附会,毕竟这是对单一类型的文件具体操作 。
        这是一段通过jdbc-odbc桥来对excel的访问的程序,此方法的原创真是可谓随心所欲呀!!这里的随心所欲可是绝对的褒义!我认为这个方法要比通过Java Excel API(jxl.*)访问excel文件要方便。但是通过桥向excel的写入我还没有调试出来,网上有人说可以的,但是也没有给出具体方法,我也是半信半疑,所以索性就不搞了,到真正用到对excel的操作时还得用Java Excel API(jxl.*),姜还是老的辣呀!!呵呵。。。。好了,说正题吧,首先对你的excel文件建立一个odbc数据源,哦,对了,注意:微软的ODBC驱动程序把工作表中的第一行作为列名,工作表名作为数据库表名。 具体操作是:“控制面板” --> “管理工具” --> “数据源(ODBC)”-->“选择系统DSN”,点击添加,在弹出窗口中选择“Driver do Microsoft Excel(*.xls)”。然后在数据源名处输入你一个名字handleExcel,然后点击“选择工作簿”,然后找到并选取你的Excel文件点击确定后,系统数据源列表中会出现你设置的数据源名称,现在数据表已经在数据源列表里了。需要注意的是工作表名后面跟了一个“$”符号,这个符号是不可缺少的

import java.sql.*;
/**
 * 通过jdbc-odbc桥来访问excel文件(至于数据的写入还没调试出来,
 * 但是看到有人说是可以通过jdbc-odbc桥来向excel文件写入)
 * @see
 * @version Version  2005-7-27
 * @author Administrator
 * @since JDK1.4.2
 */
public class handleExcel {

    /**
     * 创建连接
     * @param
     */
    Connection con = null;
    Statement stmnt = null;
    public handleExcel() {
        //TODO Auto-generated catch block
        try{
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         con = DriverManager.getConnection( "jdbc:odbc:handleExcel","","" );
         stmnt = con.createStatement();
        }catch(Exception e){
            System.out.println("con is error!!");
            e.printStackTrace();
        }
    }
   
    /**
     * 读取excel文件内容
     * @param
     */   
    public void getResult(){
        try {
            ResultSet rs = stmnt.executeQuery("SELECT * FROM [Sheet1$]");
            //获得列的总数
            ResultSetMetaData RSMD = rs.getMetaData();
            int rowCount = RSMD.getColumnCount();
            //获得和打印记录
            System.out.println( "查得的记录为:");
            while( rs.next() ) {
                for (int i = 1;i <= rowCount;i++){
                    System.out.print(rs.getString(i)+", ");
                   
                }
                System.out.println(" ");
               
            }
        }
        catch( SQLException e ) {
            System.out.println("get is error!!");
            e.printStackTrace();
        } 
    }
   
    /**
     * 向excel文件写入内容
     * @param
     */ /*
    public void setPar(){
        try{
            int result =
                stmnt.executeUpdate("insert into [sheet1$] values ('marry',21,'English','women','teacher')");
            System.out.println("result is : "+result);        
        }catch(SQLException e ){
            System.out.println("Set is error!!");
            e.printStackTrace();
        }
    }*/
   
    /**
     * 测试函数
     * @param
     */
    public static void main(String[] args) {
        handleExcel TestHpc = new handleExcel();     
        //TestHpc.setPar();
        TestHpc.getResult();       
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值