jdbc 连接 excel,access

阎建华
2023-12-01

使用jdbc连接 excel和常用的 jdbc不太一样,需要做一些准备工作。通常使用jdk提供的ODBC 桥接模式来连接。

1.扩展jdk

jdk5,6,7 是支持 odbc的,但是1.8以上就不支持了,这里需要将1.8扩展一下,做法如下:

1. 去下载一个5,6,7 之间的jdk,我用的是5的。
2.转到JRE \ lib文件夹并找到rt.jar 
3.解压缩它(如果已安装WinRAR)或者您可以将其重命名为rt.zip并解压缩。
4.复制sun \ jdbc和sun \ security \ action文件夹,保留文件夹结构。即,您应该具有如下所示的文件夹结构:
     Sun - > Security - > Action - > JDBC
5.打开CMD窗口。转到Sun文件夹的父文件夹。运行命令:
     jar -cvf jdbc.jar sun 
6.上面的命令将创建一个名为jdbc.jar的文件.

7 .将JDBC.jar复制到JDK8或JRE8 lib文件夹
8.从JRE的JRE \ bin复制jdbcodbc.dll 7安装到JRE 8安装的JRE \ bin。
9.重新启动JVM。

 

2. 写代码:

public class ExcelConnectionTest {
    private static String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
   // private static String dbURL = "jdbc:odbc:driver={Microsoft Excel Driver (*.xlsx)};DBQ=D:/test.xlsx;"; // 不设置数据源
    private static String dbURL="jdbc:odbc:book1"; //数据源连接方式 DSN:ExcelTest

    private static Connection dbConn = null;

    /**
     * @param args
     */
    public static void main(String[] args) {

        try {
            Class.forName(driverName);
            dbConn = DriverManager.getConnection(dbURL, "", "");
            Statement smt = dbConn.createStatement();
            ResultSet set = smt.executeQuery("SELECT * FROM [sheet1$]");
            System.out.println("成功");
            while (set.next()) {
                System.out.print(set.getString(1) + "\t");
            }
        } catch (ClassNotFoundException e) {
            System.out.println("失败");
            e.printStackTrace();
        } catch (SQLException e) {
            System.out.println("失败");
            e.printStackTrace();
        } finally {
            try {
                dbConn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

3. 在计算机中创建odbc数据源

控制面板----管理工具-----ODBC 数据源(64 位)----系统DNS-----选择excelDriver -----selectWorkbook(选择你的excel)---确定。

 

 

然后就会读取出excel的内容。

 类似资料: