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] Lire + écrire dans un format CSV


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    Par défaut [POI] Lire + écrire dans un format CSV
    Bonjour,

    j'aimerai lire un fichier en format csv dans lequel je stocke la date.
    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    01/01/2012; 02/01/2012;
    ce fichier doit-être parcourue.
    on fait une comparaison avec une date.
    si on ne trouve pas la date, il devra écrire la date que je récupère.
    si on trouve la date, il affichera qu'on a trouver la date dans le fichier.

    je fais ceci:
    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
     
    date_extract = row.getCell(0).getStringCellValue().substring(3,13);//on récupère la date
    					System.out.println("date_extract: "+date_extract);
     
    					//faire une vérification pour savoir:
    					//si la date du fichier n'est pas trouvée sur
    					InputStream ist = new FileInputStream("C:/Donnees/Aide_Manager/date_extract1.csv");
    					HSSFWorkbook wbd = new HSSFWorkbook(ist);
    					HSSFSheet sheetd = wbd.getSheetAt(0);
    					HSSFRow rowd = null;
    					HSSFCell celld = null;
     
    					for (Iterator r = sheetd.rowIterator(); r.hasNext();){
    						rowd = (HSSFRow) r.next();
    						celld = rowd.getCell(0);
    						if(celld != null ){
    							if(celld.getCellType()==0){
    							System.out.println("c'est un nombre: "+celld.getNumericCellValue()+" index: "+celld.getRowIndex());
    							}else{
    								System.out.println("c'est une chaine: "+celld.getStringCellValue());
    								if(celld.getStringCellValue().equals(date_extract)){
    									System.out.println("DATE TROUVEE Ds le fichier !");
    									System.out.println("CETTE EXTRACT A DEJA ETE UTILISEE !!");
    									System.out.println("MERCI D'UTILISER UN AUTRE EXTRACT CONCERNANT UNE AUTRE DATE !");
    									date_stockee_trouvee=true;
    								}
    							}
     
    						}
    					}
     
    					if(date_stockee_trouvee==false){//si la date n'est pas trouvée dans le fichier
    						//retrouver la dernière ligne du fichier pour y ecrire la date
    							System.out.println("retrouver la dernière ligne du fichier: "+rowd.getLastCellNum());
    							//pour crée la date ds le fichier 
    							//et pour la retrouver et eviter de rajouter la validation d'un extract comportant la même date
    							rowd.setRowNum(rowd.getLastCellNum());
    							celld = rowd.createCell(0);
    						    celld.setCellValue(date_extract);
    						    //pour ecrire dans le même fichier
    							FileOutputStream fileOutd = new FileOutputStream("C:/Donnees/Aide_Manager/date_extract1.csv");
    							wbd.write(fileOutd);
    						    fileOutd.close();
    }
    Mais il m'affiche cette erreur-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    date_extract: 25/01/2012
    java.io.IOException: Unable to read entire header; 2 bytes read; expected 32 bytes
    	at org.apache.poi.poifs.storage.HeaderBlockReader.alertShortRead(HeaderBlockReader.java:176)
    	at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:103)
    	at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:153)
    	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:305)
    	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:286)
    	at Extraction.main(Extraction.java:91)
    La ligne qui lui pose problème, c'est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HSSFWorkbook wbd = new HSSFWorkbook(ist);
    A mon avis, POI ne doit pas géré les csv? non...?

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Et POI est fait pour lire des fichiers excel, or le csv n'est pas un fichier excel, donc POI ne peut pas le lire.

  4. #4
    Membre éclairé 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
    Par défaut
    Merci !!

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

Discussions similaires

  1. POI pour lire/écrire dans Excel
    Par jiybee85 dans le forum Documents
    Réponses: 0
    Dernier message: 09/02/2012, 12h15
  2. Autoriser Apache à lire/écrire dans un dossier
    Par Invité dans le forum Apple
    Réponses: 2
    Dernier message: 29/05/2011, 16h22
  3. pb pour lire/écrire dans base de registre
    Par Doksuri dans le forum Oracle
    Réponses: 6
    Dernier message: 21/06/2006, 13h34
  4. lire / écrire dans un fichier excel au format xml
    Par crisflo dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 28/01/2006, 10h50
  5. Lire/écrire dans.zip comme si c'était un répertoire
    Par LadyWasky dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2005, 15h09

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