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

Java Discussion :

Problème PropertySetFactory.create avec fichier de type OutputFile


Sujet :

Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut Problème PropertySetFactory.create avec fichier de type OutputFile
    Bonjour à tous,

    Voilà je vous présente mon problème.

    J'ai une fonction qui me créé un document Excel. Cette méthode retourne donc le document Excel qui est de type OuputFile puisque je viens de le créer.

    Ensuite j'ai une autre méthode qui prend en paramètre le nouveau fichier Excel qui vient d'être créé (donc de type OutpuFile). Je veux dans cette méthode consulter les propriétés de ce fichier en faisant PropertySetFactory.create(monFichier), le hic c'est qu'il me faut un fichier de type InputFile pour que je puisse le lire et dans mon cas le fichier est de type OutputFile. Du coup comment puis-je faire ?

    J'espère que j'ai été suffisamment clair, si tel n'est pas le cas n'hésitez pas à me poser des questions.

    Merci à tous

    Leniouns

  2. #2
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Tu peux regarder là pour trouver la solution :
    http://www.javadocexamples.com/java_...pare.java.html

    Mais sur le principe, tu crées un "InputFile" à partir du chemin de ton fichier excel.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Oui mais je n'ai qu'un Outputfile en paramètre... Je ne peux pas récupérer son chemin si ?

    Merci de ton aide

  4. #4
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Je ne vois pas très bien le contexte de ton problème, il faudrait peut-être que tu nous cote un bout de ton code.

    Mais à priori quand tu crées ton fichier excel, tu lui donnes soit un fichier existant, soit le nom de ton fichier (soit avec un chemin, soit il sera placé la racine de ton projet par défaut).

    Donc tu dois pouvoir récupérer l'emplacement de ton fichier excel.

    Fait un F5 sur ton projet, si ils sont à la racine tu les verras de suite.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    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
    public FileOutputStream generateHeaderExcel() throws FileNotFoundException, IOException, JDOMException, BiffException, WriteException, WritingNotSupportedException{
     
    		//Document iDoc = super.generateHeader();
    		/*Workbook workbook = Workbook.getWorkbook(new File(mOutputFile)); 
    		WritableWorkbook copy = Workbook.createWorkbook(new File("EnteteExcel.xls"), workbook);
    		copy.write();
    		WritableSheet sheet1 = copy.getSheet(1);*/
     
    		File poiFilesystem = new File(mOutputFile);
            InputStream is = new FileInputStream(poiFilesystem);
            POIFSFileSystem poifs = new POIFSFileSystem(is);
            is.close();
            DirectoryNode dir = poifs.getRoot();  
     
            //appliquer les parametres du fichiers
            SummaryInformation si = PropertySetFactory.newSummaryInformation();
            si.setAuthor(mUserGeneration);
            si.setSubject(mSoftwareName + "|" + mSoftwareVersion);
            si.setKeywords(mChecksum);
            si.setTitle(mOutputFile);
            si.setComments(mDateGeneration);
            //Ecrire les parametres du fichier
            si.write(dir, SummaryInformation.DEFAULT_STREAM_NAME); 
     
            FileOutputStream out = new FileOutputStream(poiFilesystem);
            poifs.writeFilesystem(out);
            out.close();
    return(out)

    Ensuite je veux faire une fonction qui récupère le fichier out et qui lit les propriétés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public boolean checkHeaderExcel(FileOutputStream aFile) throws NoPropertySetStreamException, MarkUnsupportedException, UnsupportedEncodingException, IOException{
     
    		SummaryInformation si = (SummaryInformation) PropertySetFactory.create(aFile);
    Le problème c'est que aFile doit être de type FileInputStream et là il est de type FileOutputStream

  6. #6
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Tu as créés un fichier File "poiFilesystem". Ensuite tu "écris" ton fichier grâce à la fonction writeFilesystem().
    En gros, tu passes d'un fichier File vide, à un ficher File rempli.
    Donc tu as bien un fichier de créer quelque part.

    Je te renvoie à l'api : http://docs.oracle.com/javase/1.4.2/...putStream.html

    Tu prends ton fichier File, tu crées un inputFile que tu mets en paramètre de ta méthode.

    Dans ta méthode generateHeaderExcel(), il faut que tu renvois le File "poiFilesystem" et pas le "out" (qui n'a pas de sens d'être retourné d'ailleurs).

    Après à toi de voir, si tu ne peux pas renvoyer directement le "is' qui est un FileInputStream ou même le "poifs".
    Au vu de ton code, je ne peux pas trop te dire qu'est-ce qui serait le mieux. Je peux juste te dire, il ne faut pas retourné le out. Ca n'a pas de sens. Il faut bien voir que cela te sert juste à écrire ton fichier. C'est tout.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Merci de ton aide

    Par contre j'ai un petit doute, est-il réellement possible de récupérer les propriétés d'un fichier? Les même propriétés que lorsque l'on fait clic droit dsur le fichier -> propriété -> résumé. Car cette démarche est spécifique à Windows.

    Merci de votre aide

  8. #8
    Membre éprouvé
    Homme Profil pro
    Thésard BioInformatique
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Thésard BioInformatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Ce n'est pas spécifique à Windows. Et oui, normalement tu doit pouvoir les récupérer, si elles existent !
    Je n'ai jamais eu ce problème, mais j'ai trouvé ça sur google : http://www.fobec.com/CMS/java/source...chier_965.html
    http://poi.apache.org/apidocs/index.html

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Merci de ton aide. Cependant le premier lien ne correspond pas vraiment à ce que je veux faire. Car là il s'agit d'informations "figées". Moi je veux récupérer les informations que je rentre moi même

    J'ai un problème avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public boolean checkHeaderExcel(File aFile) throws NoPropertySetStreamException, MarkUnsupportedException, UnsupportedEncodingException, IOException, UnexpectedPropertySetTypeException{
     
    System.out.println(aFile.getAbsolutePath());
    InputStream iFileInput = new FileInputStream(aFile.getAbsolutePath());
     
    //SummaryInformation si = PropertySetFactory.newSummaryInformation();
    PropertySet iPs = new PropertySet(iFileInput);
    SummaryInformation si = new SummaryInformation(iPs);
    String iChecksum = si.getKeywords();
     
    System.out.println(iChecksum);
     
    }
    En effet il y a un problème à cette ligne : PropertySet iPs = new PropertySet(iFileInput);

    Je reçoit l'exception : MarkUnsupportedException

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2015, 21h49
  2. [XL-2007] Problème de formule avec fichiers fermé
    Par dubdub22 dans le forum Excel
    Réponses: 0
    Dernier message: 28/01/2014, 22h25
  3. Problème de compilation avec package du type graphique
    Par M_Ostrogradsky dans le forum Erreurs - Avertissements
    Réponses: 5
    Dernier message: 28/02/2011, 09h24
  4. Réponses: 0
    Dernier message: 19/08/2009, 18h46
  5. Problème lien de type file avec fichiers locaux
    Par tomburn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/01/2007, 16h03

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