使用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的内容。