Bonjour, Je me permet de demander votre aide car je suis totalement perdu. Je vous explique : J’ai un fichier exel qui comporte 44893 lignes et 21 colonnes, à côté j’ai un dossier avec plusieurs images, ce que je voudrais faire c’est renommer les images présent dans le dossier avec un nouveau nom que j’aurais extrait d’une colonne du fichier excel, bien sur pour éviter toute confusion je souhaite comparer le nom des fichiers dans le répertoire avec celui présent dans une des colonnes du fichier excel pour être que le programme rename bien le bon fichier images. Le souci c’est que suis totalement perdu dans le parcours du excel et du dossier car des que je sors les valeurs nouveau, ref et nomCourt de leur boucle for bah il perdent leurs valeur et je n’arrive pas à trouver la boucle qui leurs permettrait de garder leurs valeur et donc la condition ne peut jamais faire car nomCourt et ref n’ont jamais la même valeur, donc si quelqu’un voudrait bien m’aider, ça serais gentil car c’est assez important, j’ai fais mon maximum mais la j’ai plus trop d’idées En vous remerciant par avance et vous souhaitant une bonne journée PS : Je travaille sur plusieurs projet à la fois
public class Main {
public static void main(String[] args) throws IOException, BiffException {
//Ouverture et lecture du fichier excel
Workbook workbook = Workbook.getWorkbook(new File("E:\\Base_nouvelles_images_Jofl_complète_TRAVAIL_marco_fait2.xls"));
//Acces a la premiere page du fichier excel
Sheet sheet = workbook.getSheet(0);
// Nouveau permet de recuperer le nouveau nom des fichiers
String nouveau;
// Initialisation des variables
String ref = "";
Cell cell = null;
Cell cell2 = null;
// NomCourt est la variable qui va contenir les nom des fichiers present dans le repertoire sans les extension
String nomCourt = "";
// J'ouvre le repertoire et je met tous les fichiers qui a dedans dans un tableau de type File
File dossier = new File("E:\\Images_2");
File[] liste = dossier.listFiles();
// Premiere boucle for permettant de parcourir le fichier excel
for (int i = 1; i < sheet.getRows(); i++) {
cell = sheet.getCell(7,i);
nouveau = cell.getContents()+".jpg";
cell2 = sheet.getCell(5,i);
ref = cell2.getContents();
}
// Deuxieme boucle for permettant de parcourir le tableau de fichier
for(int j = 0; j < liste.length; j++) {
if (liste[j].isFile()) {
// Recupere le nom des fichiers present dans le tableau sans leur extension
nomCourt = (liste[j].getName() != null) ? liste[j].getName().substring(0,liste[j].getName().indexOf('.')) : "";
}
}
// Condition qui verifie que le nom des fichiers recuperer dans le excel qui correspond avec les nom des fichiers present dans le repertoire
// pour que le nouveau nom du fichier correspond bien a son ancien nom dans le excel
if(ref == nomCourt) {
// Je rename le nom des anciens fichier par le nouveau
/*Path ancienChemin = Paths.get("E:\\Images_2\\"+ancien);
Files.move(ancienChemin, ancienChemin.resolveSibling(nouveau));
System.out.println(ancien+" renomme => " +nouveau);*/
}
workbook.close();
}
}