IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[POI]: ecrire dans le même fichier que celui en lecture


Sujet :

API standards et tierces Java

  1. #1
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut [POI]: ecrire dans le même fichier que celui en lecture
    Bonjour,

    Je désire écrire dans un fichier qui est déja en lecture mais je ny'a arrive pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    int nbfeuille=0;
    				//version .xls
    				InputStream ist = new FileInputStream("C:/Users/LZ2059/Desktop/Projection_2012_Eq2.xls"); //pour ouvrir les fichiers xls de 2007
    				HSSFWorkbook wb2 = new HSSFWorkbook(ist);
    				HSSFSheet sheet2 = wb2.getSheetAt(0);
    				nbfeuille= wb2.getNumberOfSheets();//retourne le nombre de feuille renseigné
    				
    				HSSFRow row2 = null;
    				HSSFCell cell2 = null;
    				//version .xlsx
    				String prenom_proj;
    				Collator usCollator;
    				//System.out.println("wb2.getNumberOfNames(): "+nbfeuille);
    				// il faut définir la feuille qui sera alimenté:
    				//Parcourir les feuilles du document
    				//si la semaine correspond au libellé d'une feuille
    				for (int g=0; g<nbfeuille; g++){//boucle de parcours des onglets
    					sheet2 = wb2.getSheetAt(g);
    					onglet=sheet2.getSheetName();// on récupère le nom de la feuille excel en String
    					if(onglet.startsWith("S")){//si ca commence par "S0"
    						//on enleve le "S"
    						semaine_en_string=onglet.substring(1);
    						// on converti le nom de l'onglet en Int
    						onglet_conv = Integer.parseInt(semaine_en_string);
    						System.out.println("onglet: "+onglet_conv);
    						if(onglet_conv == semaine){//si la semaine de l'onglet du doc "extract.xls"
    													//correspond à la semaine de l'année trouver dans le fichier "Projection_2012_Eq2.xls"
    						
    							System.out.println("onglet de la semaine "+onglet_conv+" TROUVEE !");
    							for (Iterator rowIt = sheet2.rowIterator(); rowIt.hasNext();){//boucle de parcours du fichier de ligne en ligne
    								row2 = (HSSFRow) rowIt.next();
    								if(row2.getCell(0)!= null && row2.getRowNum() <= 19){// si la ligne est différent de null et inférieur ou égale à la 20ème ligne
    									if(!row2.getCell(0).getStringCellValue().equals("Noms") && !row2.getCell(0).getStringCellValue().equals("EQUIPE") && !row2.getCell(0).getStringCellValue().equals("")){
    										//on récupère le 1er prénom du fichier Projection
    										prenom_proj=row2.getCell(0).getStringCellValue().toUpperCase();
    									
    										for (int d=0; d<tab.length;d++){
    											if(tab[0][d] != null || tab[1][d]!=null){//si l'une des cellules n'est pas null
    												//System.out.println("Tab"+tab[0][d]);
    												//System.out.println("prénom: "+prenom_proj);
    												
    												//Get the Collator for US English and set its strength to PRIMARY
    												 usCollator = Collator.getInstance(Locale.FRANCE);
    												 usCollator.setStrength(Collator.PRIMARY);
    												 if( usCollator.compare(prenom_proj, tab[0][d]) == 0 ){//si le prénom trouvé dans le fichier 'Projection_2012_Eq2.xlsx' correspond au prenom de l'extract Hermes
    												     //System.out.println("Strings are equivalent");
    												     System.out.println("Agent: "+tab[0][d]+" Validation: "+tab[1][d]);
    												     //on récupère la ligne du prénom
    												     System.out.println("je suis à la ligne: "+row2.getCell(0).getRowIndex());
    												     //on écrit dans la colonne I la validation du prénom trouvé
    												     
    												     	cell2 = row2.getCell(8);// colonne(I)
    													 	cell2 = row.createCell(8);
    													    cell2.setCellType(Cell.CELL_TYPE_NUMERIC);
    													    cell2.setCellValue(tab[1][d]);
    													 // Write the output to a file
    													  //pour ecrire dans le même fichier
    													    FileOutputStream fileOut = new FileOutputStream("C:/Users/LZ2059/Desktop/Projection_2012_Eq2.xls");
    													    wb2.write(fileOut);
    													    fileOut.close();												 }
    												
    											}
    											
    										}
    									}
    									
    								}
    							}
    					}
    					
    					
    				}
    				
    				//alors on effectue le traitement
    				//sinon on fait rien
    				
    				
    				
    				
    				}//for	
    				
    			
    		} catch (FileNotFoundException e){
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    En faite j'aimerai juste écrire une variable dans une colonne de ce fichier (là ou c'est rouge).

    Quelqu'un a-t-il déjà fait ?
    Merci

  2. #2
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    solution:

    cell2 = row2.getCell(8);// colonne(I)
    cell2 = row2.createCell(8);
    cell2.setCellType(Cell.CELL_TYPE_STRING);
    cell2.setCellValue(tab[1][d]);
    // Write the output to a file
    //pour ecrire dans le même fichier
    FileOutputStream fileOut = new FileOutputStream("C:/Users/LZ2059/Desktop/Projection_2012_Eq2.xls");
    wb2.write(fileOut);
    fileOut.close();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/08/2012, 15h44
  2. Réponses: 13
    Dernier message: 17/07/2011, 20h14
  3. [XL-2007] FSO TextStream - Créer un fichier txt dans le même répertoire que le classeur Excel
    Par Sclarckone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2010, 15h15
  4. Réponses: 2
    Dernier message: 05/08/2009, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo