[Java:JDBC,Driver=MSExcel] Create table - Je me retrouve avec deux fichiers .xls

Bonjour,

Depuis mon programme Java je dois créer un fichier Excel.
J’ai opté pour la méthode JDBC (que j’ai utilisé par ailleurs pour lire dans un autre fichier Excel). Mais j’ai l’impression d’avoir du mal à saisir le fonctionnement.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=machin.xls;READONLY=false");
Statement st = c.createStatement();

String tableName = "matable";

/** Création de la table (l'onglet) **/
String createQry = "Create table " + tableName  + " (NUM INTEGER, NOM STRING, TEL STRING)";
System.out.println("createQry = " + createQry);
st.executeUpdate(createQry);

En exécutant le code ci-dessus, un fichier "machin.xls" est créé mais il est illisible sous Excel (Excel 2002) : il le fait irrémédiablement planter.

J’ai découvert par hasard que si tableName contenant une chaine du genre “matable.bidule”, j’obtenais -en plus du même fichier “machin.xls” toujours illisible- un fichier “matable.xls” -lisible lui- contenant un onglet (une feuille) nommé “bidule” et qui avait bien les 3 colonnes voulue (NUM, NOM, TEL).

J’ai essayé de retirer le DBQ=machin.xls; dans la chaine de connection. mais dans ce cas là j’obtiens une SQLException: No data found.

Bien sûr je pourrais supprimer le fichier "machin.xls" à la fin de mon traitement, mais je trouve ça un peu "crade" :paf:

Ma conclusion c’est donc que j’ai raté un gros chapitre de l’utilisation d’un driver JDBC pour Microsoft Excel et que je dois m’en retourner vers vous :jap:

Ou JExcelAPI (JExcelAPI Homepage)

Finalement pour mon problème, j’ai opté pour JDBC Microsoft Access (parce qu’au final, derrière il valait mieux avoir une base Access qu’un fichier Excel).
Mais je garde les deux API (car je risque de ravoir à utiliser des fichiers Excel).
Merci à vous :jap: