こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Javaとエクセルを連携させる

Sample1.java 
ドライバ名にMicrosoft Excel Driver;createと指定しましたが
実行時に、
java.sql.SQLException: No suitable driver found for Microsoft Excel Driver;creat
e=true
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Sample1.main(Sample1.java:14)
ドライバが適切でないというエラーが出てしまいました。
エクセルのDBはSQL文では扱えないのでしょうか?
コードは以下の通りです。

import java.sql.*;

public class Sample1
{
public static void main(String args[])
{
try{
//接続の準備
String url = "Microsoft Excel Driver;create=true";
String usr = "";
String pw = "";

//データベースへの接続
Connection cn = DriverManager.getConnection(url, usr, pw);

//問い合わせの準備
DatabaseMetaData dm = cn.getMetaData();
ResultSet tb = dm.getTables(null, null, "車表", null);

Statement st = cn.createStatement();

String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
String[] qry2 = {"INSERT INTO 車表 VALUES (2, '乗用車')",
"INSERT INTO 車表 VALUES (3, 'オープンカー')",
"INSERT INTO 車表 VALUES (4, 'トラック')"};
String qry3 = "SELECT * FROM 車表";

if(!tb.next()){
st.executeUpdate(qry1);
for(int i=0; i<qry2.length; i++){
st.executeUpdate(qry2[i]);
}
}

//問い合わせ
ResultSet rs = st.executeQuery(qry3);

//データの取得
ResultSetMetaData rm = rs.getMetaData();
int cnum = rm.getColumnCount();
while(rs.next()){
for(int i=1; i<=cnum; i++){
System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " ");
}
System.out.println("");
}

//接続のクローズ
rs.close();
st.close();
cn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}

投稿日時 - 2013-09-25 01:13:46

QNo.8278644

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

DriverManager.getConnection()のURLが間違っています。
URLは、例えば"jdbc:xls:file:test.xlsx"のように、"jdbc:"で始まる文字列です。
詳しくは、使用しているJDBCドライバのドキュメントを確認してください。
また、JDBCドライバのclassファイル(またはjarファイル)をクラスパスに含めるのを忘れないでください。

参考URL:http://code.google.com/p/sqlsheet/

投稿日時 - 2013-09-25 02:01:00

補足

jdbc:xls:file:test.xlsx
としてやってみたところ、
java.sql.SQLException: No suitable driver found for jdbc:xls:file:extracttest.xl
s
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Sample1.main(Sample1.java:14)
と出て14行目は
Connection cn = DriverManager.getConnection(url, usr, pw);
です。何がおかしいのでしょうか?

>また、JDBCドライバのclassファイル(またはjarファイル)>をクラスパスに含めるのを忘れないでください。

この意味がちょっとわかりません。環境変数をいじるという事ですか?

投稿日時 - 2013-09-27 00:11:51

お礼

丁寧にリンクを張っていただいてありがとうございます。

投稿日時 - 2013-09-26 00:32:49

あなたにオススメの質問