[JXL] Modificiation de cellules sur un excel

  • Auteur de la discussion Théo.V
  • Date de début

Théo.V

Nouveau membre
#1
Bonjour,
Je me permet de demander votre aide, alors voila j'ai un fichier excel avec 21 colonnes et 4540 lignes, mon excel est coupé en deux, je veux dire que de la ligne 1 a 3505 il y a des informations et de la ligne 3507 a 4540 il y a des informations, j'ai réussi à extraire toutes les informations que je voulais, maintenant ce que je n'arrive pas à faire c'est que cell2 prend la valeur de la concaténation de cell2 + cell3
J'espère que vous pourrez m'aider à me sortir de ce problème, en vous remerciant par avance
Voici le code que j'ai fait jusqu’à présent

Java:
public class Main {
 
    
    public static void main(String[] args) throws IOException, BiffException {
        
                // Permet d'ouvrir et de lire le fichier voulu
                     Workbook workbook = Workbook.getWorkbook(new File("E:\\A11_TOUTES_ENSEMBLE_après_purge_Avec_légendes_300_dpi.xls"));
                     Sheet sheet = workbook.getSheet(0);
                     Cell cell = null;
                     Cell cell1 = null;
                     Cell cell2 = null;
                     Cell cell3 = null;
                      
                    for(int j = 0; j < 3505; j++) {
                          cell = sheet.getCell(3, j); 
                         System.out.println(cell.getContents());
                        }
                      
                     for(int j = 3507; j < sheet.getRows(); j++) {
                          cell1 = sheet.getCell(3,j);
                         System.out.println(cell1.getContents());
                     }
                    
                     for(int j = 0; j < 3505; j++) {
                         cell2 = sheet.getCell(7, j);
                         System.out.println(cell2.getContents());
                     }
                      
                     for(int j = 3507; j < sheet.getRows(); j++) {
                         cell3 = sheet.getCell(7,j);
                         System.out.println(cell3.getContents());
                     }
                      
                     if(cell.equals(cell1) && cell2.equals(cell3)) {
                    
                     }
                     workbook.close();
    }
 
}
 

Théo.V

Nouveau membre
#2
Bonjour à tous
Petit up je suis toujours coincé au même endroit, je pense qu'il faut que j'utilise Writablesheet, writableworkbook, label mais j'arrive pas à m'en servir, si quelqu'un pourrait m'aider, ça serait avec plaisir

Java:
public class Main {

    public static void main(String[] args) throws IOException, WriteException, BiffException {
        
                    // Permet d'ouvrir et de lire le fichier voulu
                     Workbook workbook = Workbook.getWorkbook(new File("E:\\A11_TOUTES_ENSEMBLE_après_purge_Avec_légendes_300_dpi.xls"));
                    // Permet d'acceder a la première feuille du fichier excel
                     Sheet sheet = workbook.getSheet(0);
                     File file = new File("E:\\A11_TOUTES_ENSEMBLE_après_purge_Avec_légendes_300_dpi.xls");
                     Workbook wwb;
                    
                    // Variable permettant d'enregistrer les informations extraites
                     Cell cell = null;
                     Cell cell1 = null;
                     Cell cell2 = null;
                     Cell cell3 = null;
                    
                    // Suite de for permettant de recuperer les informations dans des colonnes specifiques
                    for(int j = 0; j < 3505; j++) {
                          cell = sheet.getCell(3, j);
                         // System.out.println(cell.getContents());
                        }
                    
                     for(int j = 3507; j < sheet.getRows(); j++) {
                          cell1 = sheet.getCell(3,j);
                        // System.out.println(cell1.getContents());
                     }
                    
                     for(int j = 0; j < 3505; j++) {
                         cell2 = sheet.getCell(9, j);
                        // System.out.println(cell2.getContents());
                     }
                    
                     for(int j = 3507; j < sheet.getRows(); j++) {
                         cell3 = sheet.getCell(9,j);
                        // System.out.println(cell3.getContents());
                     }
                    
                     // Boucle for permettant de changer le contenu de toutes les lignes dans une colonne specifique
                     for(int j = 0; j < 3505; j++) {
                         while(sheet.getCell(9,0) != null && j == 3505) {
                             if(cell.equals(cell1) && cell2.equals(cell3)) {
                                wwb = Workbook.getWorkbook(file);
                                sheet = (WritableSheet) wwb.getSheet(0);
                                ((WritableSheet) sheet).getWritableCell(cell2+"_"+cell3);
                             }
                         }
                     }
                     // Permet de fermer le fichier et de rafraichir la memoire
                     workbook.close();
    }
}
Merci d'avance pour votre aide
 
Dernière édition:

mdj de normandie

Grand Maître
#3
Salut,
je ne suis pas un expert en Java mais de base je préconiserais de convertir le fichier xls en tableau (array) a deux dimensions pour faciliter la manipulation des données :

Java:
Workbook workbook = Workbook.getWorkbook(new File("E:\\A11_TOUTES_ENSEMBLE_après_purge_Avec_légendes_300_dpi.xls"));
Sheet sheet = workbook.getSheet(0);
data = new String[sheet.getColumns()][sheet.getRows()];
data2 = new String[sheet.getColumns()][sheet.getRows()];

//conversion en array
for (int j = 0; j <sheet.getColumns(); j++) {
    for (int i = 0; i < sheet.getRows(); i++)  {
        Cell cell = sheet.getCell(j, i);
        data[j][i] = cell.getContents();
    }
}

//manipulation
for (int j = 0; j <sheet.getColumns(); j++) {
    data2[j]=[data[j][1], data[j][2]+"_"+data[j][3], data[j][4], ...]
}

// conversion array vers fichier
//la je vous laisse chercher
une fois ce code fait vous pourrez certainement faire un peu de refactoring pour le simplifier
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Membres en ligne
  • Misterybean
  • kinofaya
  • dartyduck
Derniers messages publiés
Statistiques globales
Discussions
866 033
Messages
8 064 110
Membres
1 576 556
Dernier membre
SORPEO
Partager cette page
Haut