在java中访问一个.xlsb文件
我有下面的JDBC代码。 我试图创build一个dnsless
连接。
import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class dummy { public static void main(String[] argv) { System.out.println("-------- Oracle JDBC Connection Testing ------"); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { System.out.println("Where is your Oracle JDBC Driver?"); e.printStackTrace(); return; } System.out.println("Oracle JDBC Driver Registered!"); Connection connection = null; try { connection = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=D:/abc.xls;"); } catch (SQLException e) { System.out.println("Connection Failed! Check output console"); e.printStackTrace(); return; } if (connection != null) { System.out.println("You made it, take control your database now!"); } else { System.out.println("Failed to make connection!"); } } }
该程序正在与下面的输出正常工作。
-------- Oracle JDBC Connection Testing ------ Oracle JDBC Driver Registered! You made it, take control your database now!
但是我需要访问一个.xlsb
文件,当我改变
connection = DriverManager .getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=D:/abc.xls;");
至
connection = DriverManager .getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xlsb)};DBQ=D:/abc.xlsb;");
我得到下面的输出例外。
-------- Oracle JDBC Connection Testing ------ Oracle JDBC Driver Registered! Connection Failed! Check output console java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at dummy.main(dummy.java:19)
请让我知道我该如何解决这个问题,我想使用dnsless connection
。 由于我有多个Excel工作表。
而我所有的应用程序是32位。
谢谢
正如其名称所示,旧的Excel ODBC驱动程序
Driver={Microsoft Excel Driver (*.xls)};
只适用于.xls
文件。
较新的Excel ODBC驱动程序
Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
也适用于更新版本的Excel(2007及更高版本)使用的Open XML文件types 。 包含更新的Excel驱动程序作为Access数据库引擎安装的一部分。