Enregistrement fichier
JulienLafitte
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'ai plusieurs fichiers au format libreoffice dans un dossier. Leurs noms se suivent tous. Le premier fichier est donc le 0001.ods, le deuxième est 0002.ods, le troisieme 0003.ods etc.....jusqu'au fichier 1028.ods.
J'aimerai convertir ces fichiers au format xls de Excel mais la seule solution que j'ai trouve est de les ouvrir un par un et de faire enregistrer sous et changer l'extension. Existe t'il un code pouvant ouvrir tous les fichiers et les enregister sous automatiquement au format xls avec le meme nom?
Merci!
J'ai plusieurs fichiers au format libreoffice dans un dossier. Leurs noms se suivent tous. Le premier fichier est donc le 0001.ods, le deuxième est 0002.ods, le troisieme 0003.ods etc.....jusqu'au fichier 1028.ods.
J'aimerai convertir ces fichiers au format xls de Excel mais la seule solution que j'ai trouve est de les ouvrir un par un et de faire enregistrer sous et changer l'extension. Existe t'il un code pouvant ouvrir tous les fichiers et les enregister sous automatiquement au format xls avec le meme nom?
Merci!
Configuration: Windows / Chrome 71.0.3578.98
A voir également:
- Enregistrement fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
Si c'est à faire une fois, le plus simple serait d'utiliser les classes Desktop et Robot et faire un programme qui va ouvrir le fichier tout seul, cliquer aux bons endroits pour enregistrer au nouveau format, fermer le fichier et recommencer.
Si ça marche pour 2 ou 3 fichiers de suite, ça fonctionnera pour 1028...
Si c'est à faire une fois, le plus simple serait d'utiliser les classes Desktop et Robot et faire un programme qui va ouvrir le fichier tout seul, cliquer aux bons endroits pour enregistrer au nouveau format, fermer le fichier et recommencer.
Si ça marche pour 2 ou 3 fichiers de suite, ça fonctionnera pour 1028...
Je n'ai jamais coder en Java et j'avoue que je suis un peu perdu par rapport à la méthode dont tu me parles...Est ce que tu peux m'aider et me dire comment je dois m'y prendre s'il te plait? Pas le code entier bien sur mais une petite aide ne serait pas de refus !
Merci beaucoup!
Remarque : je pars du principe que C:/monDossier ne contient que des fichiers .ods à convertir au départ, et qu'à l'arrivée c'est dans ce dossier que l'on enregistre les .xlsx
Dans un premier temps je te conseilles de tester dans un dossier avec 3 ou 4 fichiers seulement pour vérifier que ça fonctionne bien avant de le lancer sur tes 1028 fichiers.
import java.awt.Desktop; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io.File; public class OdsToXlsx { public static void main(String[] args) throws Exception { Desktop desktop = Desktop.getDesktop(); Robot robot = new Robot(); File[] odsFiles = new File("C:/monDossier").listFiles(); // on liste tous les fichiers du dossier for (File odsFile : odsFiles) { // pour chaque fichier desktop.open(odsFile); // on ouvre le fichier avec Excel Thread.sleep(10_000); // on attend 15 secondes qu'Excel s'ouvre robot.keyPress(KeyEvent.VK_F12); // on appuie sur F12 (enregistrer sous) robot.keyRelease(KeyEvent.VK_F12); Thread.sleep(2_000); robot.keyPress(KeyEvent.VK_TAB); // on appuie sur Tab (passe sur le type de fichier) robot.keyRelease(KeyEvent.VK_TAB); Thread.sleep(1_000); robot.keyPress(KeyEvent.VK_DOWN); // on appuie sur Flèche du bas (ouvre la liste des types de fichier) robot.keyRelease(KeyEvent.VK_DOWN); Thread.sleep(1_000); robot.keyPress(KeyEvent.VK_PAGE_UP); // on appuie sur Page Up (choisit le 1er type de fichier, XLSX) robot.keyRelease(KeyEvent.VK_PAGE_UP); Thread.sleep(1_000); robot.keyPress(KeyEvent.VK_ENTER); // on appuie sur Entrée (sélection du type de fichier) robot.keyRelease(KeyEvent.VK_ENTER); Thread.sleep(1_000); robot.keyPress(KeyEvent.VK_ENTER); // on appuie sur Entrée (enregistrer sous) robot.keyRelease(KeyEvent.VK_ENTER); Thread.sleep(10_000); // on attend 15 secondes que le fichier s'enregistre robot.keyPress(KeyEvent.VK_CONTROL); // on appuie sur Ctrl+W (ferme le fichier) robot.keyPress(KeyEvent.VK_W); robot.keyRelease(KeyEvent.VK_W); robot.keyRelease(KeyEvent.VK_CONTROL); Thread.sleep(1_000); } } }Erreur de syntaxe BASIC.
Attendu : ,.
Cette erreur apparaît au niveau de "desktop" car c'est ce mot qui est surligné.