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

MATLAB Discussion :

Utiliser JExcelApi sous MATLAB


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut Utiliser JExcelApi sous MATLAB
    Bonjour,

    Je suis en train d'essayer d'utiliser de fichiers java nommés JexcelAPI sous Matlab.
    Il s'agit d'une application Java permettant de créer/lire des fichiers excel sous matlab. L'intérêt est que contrairement à xlswrite cela fonctionne quelque soit la plateforme (Mac, Linux, Windows...).
    Après téléchargement des fichiers java, j'ai défini le chemin comme demandé en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javaaddpath('/Users/$$$/Documents/MATLAB/jexcelapi/jxl.jar')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import jxl.Workbook;
    import jxl.write.Label;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    Puis quand je tape une commande java du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WritableWorkbook w = Workbook.createWorkbook(new File(essai.xls));
    il me répond :
    No constructor 'jxl.write.WritableWorkbook' with matching signature
    found.
    Je ne sais pas d'où vient le problème, j'avoue que c'est la première fois que j'utilise vraiment des fichiers java sous Matlab.
    Merci de votre aide.

    Magicsmacks

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Je sais si c'est la cause mais essaye de rajouter les ' autour du nom de fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WritableWorkbook w = Workbook.createWorkbook(new File('essai.xls'));
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Merci Duf42, mais j'ai essayé et ca ne change rien.
    Merci pour cette réponse

    Magicsmacks

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    As-tu regardé dans le JAR les signatures disponibles pour la classe en question?
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Oui J'ai vérifié les signatures et celle-ci y est déjà décrite.
    De plus cette dernière fait partie d'un fichier de démonstration, que d'ailleurs je n'arrive pas à faire tourner.
    En fait je pense que le problème est de savoir comment faire tourner des fichiers java sous matlab. En effet je suis débutant en java et j'avoue ne pas trop savoir comment marche les interfaces Java-Matlab... je pense que le problème vient de là vu que je n'arrive même pas à faire tourner les fichiers de démo...
    J'ai cherché sur des tutos... mais j'avoue ne pas réussir...
    Merci pour cette réponse

    Magicsmacks

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Est-ce que tu as bien mis le chemin complet (absolu) vers le JAR dans la fonction JAVAADDPATH?

    Normalement l'appel de fonction JAVA depuis MATLAB se fait de façon assez simple puisque la syntaxe est très proche de la syntaxe JAVA.
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  7. #7
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Merci de cette réponse.
    J'ai effectivement mis le chemin complet absolu. après l'appel du dossier
    Par contre je crois que c'est Matlab qui n'aime pas quand on appelle une fonction java depuis la console.
    voici les couleurs affichées par la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WritableWorkbook w = Workbook.createWorkbook(new File('mydata.xls'))
    No constructor 'jxl.write.WritableWorkbook' with matching signature
    found.
    Avons-nous le droit d'appeler directement une fonction java depuis la console ?
    Merci de votre aide

    Magiscmacks

  8. #8
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Essaye plutôt comme ca (sans WritableWorkbook au début) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    w = Workbook.createWorkbook(new File('mydata.xls'))
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  9. #9
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Non, Il me répond "unexpected Matlab expression" en enlevant le début...

    Une question importante, peut on mettre directement des commandes java dans la console comme ceci, ou faut-il créer une nouvelle classe, ou fichier jar ?
    Merci d'avance

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oui c'est possible. Il faut ici enlever le new
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    w = Workbook.createWorkbook( File('mydata.xls') )

  11. #11
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Citation Envoyé par magicsmacks Voir le message
    Non, Il me répond "unexpected Matlab expression" en enlevant le début...
    C'est bizarre... Pourrais-tu mettre exactement ce que tu as tapé dans MATLAB et le message qu'il te retourne?

    Citation Envoyé par magicsmacks Voir le message
    Une question importante, peut on mettre directement des commandes java dans la console comme ceci, ou faut-il créer une nouvelle classe, ou fichier jar ?
    Non pas besoin de créer de fichier, tu peux tout à fait appeler du JAVA depuis le CommandWindow.

    Tu l'as peut-être déjà lu mais si ce n'est pas le cas, je te conseille ca: http://www.mathworks.com/help/techdo...nal/f4873.html, ca pourra peut-être te donner des idées pour commencer.
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  12. #12
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Merci pour tout ces conseils...
    Effectivement il faut enlever le new.
    Duf42, je n'avais pas encore exploité à fond ce lien... ce qui est chose faite il est très bien.
    En fait le code java et ce qu'on écrit dans la console sont légèrement différent (à moins qu'il y ait quelques erreurs dans la doc fournie avec les fichiers.
    La bonne ligne de code était en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    w = Workbook.createWorkbook(java.io.File('nomfichier.xls'));
    Le fichier excel est enfin créé!!
    Maintenant il me reste à comprendre comment on définit les feuilles et comment on modifie les cellules, colle des images...
    Ca a l'air tout aussi complexe (pour moi) que ce qui précède...
    Merci pour tout en tout cas..

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

Discussions similaires

  1. Utiliser Kinect sous MATLAB R2009b
    Par ElseLand dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/12/2012, 17h18
  2. Réponses: 0
    Dernier message: 22/08/2008, 08h30
  3. Utilisation d'une DLL sous Matlab
    Par lince102 dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/02/2008, 09h51
  4. Comment utiliser Maple sous Matlab
    Par farid754 dans le forum Maple
    Réponses: 6
    Dernier message: 27/06/2007, 09h10
  5. Comment utiliser Maple sous Matlab
    Par farid754 dans le forum MATLAB
    Réponses: 6
    Dernier message: 27/06/2007, 09h10

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