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

Servlets/JSP Java Discussion :

[EXCEL] lancer excel depuis une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut [EXCEL] lancer excel depuis une jsp
    Bonjour,

    encore un poste concernant excel et java me direz vous
    Bein oui, car malgrés mes recherches sur le forum et autres je n'ai pas 'completement' trouvé mon bonheur

    Voila mon probleme : lancer excel depuis une jsp.
    Le fichier existe deja (je n'ai pas besoin de le creer ou le modifier)
    je ne veux pas ouvrir la feuille excel dans ma jsp.

    je veux demarrer excel avec un fichier lambda (dont je connais le chemin) et je veux le demarrer sur le client et pas sur le serveur

    Donc, exit (a priori mais c'est la que j'ai besoin de vous au cas ou j'aurai loupé un truc)
    POI/HSSF, Jexcel (puisque mon fichier existe deja et que je ne veux pas le modifier)
    JDIC, j'ai testé ca marche tres bien sur une appli java , mais pas sur une architecture servlet/jsp puisque le java est executé sur le serveur.

    librairies de type JCOM : j'avoue que je n'ai pas vraiment compris l'interet et le fonctionnement. De plus j'ai trouvé que des produits commerciaux, pas d'open source.

    ensuite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Runtime run= Runtime.getRuntime();
    String cmd= "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE path_de_mon_fichier_excel.xls";
    Runtime.getRuntime().exec(cmd);
    n'est pas viable (enfin j'ai pas testé) depuis le client jsp

    enfin la seule solution qui fonctionne est l'utilisation d'un activeX depuis javascript avec quelque chose du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function startXL(strFile){
    	var myApp = new ActiveXObject("Excel.Application"); 
    	if (myApp != null)	{ 
    		myApp.visible = true; 
    		myApp.workbooks.open(strFile); 
    	} 
    	return false
    }
    Le seul hic est que ca oblige l'utilisateur a activer les activeX non signés et c'est donc un peu trop contraignant AMHA

    je pense avoir resumé les solutions disponbles ( a ma connaissance). Mais si quelqu'un a une autre solution, je suis tout ouie

    (ce post peut eventuellement etre un post de reference pour recapituler toutes les soultions en ajoutant les liens adequates)

    merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 48
    Points
    48
    Par défaut
    Moi j'ai déjà utiliser une applet signée (enfin dans mes souvenirs), qui lance l'execution du Runtime (donc de ce fait coté client) pour faire la commande open de jdic.... qui ouvira ton excel correctement.... (ainsi tu n'as qu'a mettre un bouton ouvrir dans ta jsp venant de l'applet et le gars n'a qu'un certificat a accepté).
    Je ne sais pas si cela te convient mais je te fais part de comment je m'étais débrouillé dans ce cas

  3. #3
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    a oui, c'est pas bete ca
    je vais faire comme ca, je crois bien.

    je laisse le post ouvert, au cas ou d'autres personnes aient d'autres solutions et viennent completer la liste.

    Merci

    @+

  4. #4
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    arggg

    j'ai mon applet qui fonctionne (je crois)
    mais j'obtiens un message d'erreur, je ne comprend pas pourquoi.
    C'est un java.lang.NoClassDefFoundError

    il ne trouve pas une classe qui se trouve dans le seul et unique jar (jdic.jar)
    j'ai verifié elle est bien dans le jar, qui est bien dispo pour l'applet (puisque appellé precedement)

    Est ce que tu avais rencontré ce genre de pb ? il y a dans le package +sieurs dll, je ne pense pas avoir a les utiliser mais je me trompe peut etre (bien que la stacktrace fait clairement illusion a une classe java)

    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
     
    Exception in thread "AWT-EventQueue-7" java.lang.NoClassDefFoundError
    	at org.jdesktop.jdic.desktop.internal.impl.WinUtility.getVerbCommand(Unknown Source)
    	at org.jdesktop.jdic.desktop.internal.impl.WinLaunchService.open(Unknown Source)
    	at org.jdesktop.jdic.desktop.Desktop.open(Unknown Source)
    	at com.mypackage.ExcelLauncher$1.actionPerformed(ExcelLauncher.java:33)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    voici le code dans l'applet 'ExcelLauncher' qui sera dans un jar signé et nommé excel_s.jar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    fullpath = getParameter("fullpath"); 
    JButton excel = new JButton("excel");
    excel.addActionListener(new ActionListener(){
    	public void actionPerformed(ActionEvent e) {
    	         try {
                       Desktop.open(new File(fullpath));
    		} catch (DesktopException de) {
    		  de.printStackTrace();
    		}
    	}
    });
    getContentPane().add(excel);

    enfin voici comme je l'appelle depuis la jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <applet CODEBASE="/exports/" ARCHIVE="excel_s.jar, jdic_s.jar"
    	 CODE="ExcelLauncher" 
    	WIDTH="40%" HEIGHT="40%" >
    <PARAM NAME="fullpath" value="monfichierExcel">
    </applet>
    si tu vois une erreur quelque part !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 48
    Points
    48
    Par défaut
    Aarrrghh...Oui c'est un inconvénient de jdic...(m'en souvenait plus) les dll(ou .so) dans le cas ou le client ne dispose pas de la structure livrée avec le package (super dossier etc...) fait que certaines classe ne fonctionnent pas et il me faisait ce genre de choses...
    Une des solutions peut être (si tu veux éviter les installations de .dll ou.so) d'enregistrer la commande du client (par un biais d'enregistrement de préférences) qui lui permet de lancer son appli (plusieurs solutions... directement la commande pour excel ou alors la commande de l'explorateur de fichier genre explorer sous windows et nautilus ou autre sous linux)///
    Ainsi tu fais un runtime avec cette commande dans ton applet...
    Je me souviens plus si j'avais trouvé une solution réelle au jdic... le problème étant que cette application tourne chez un client (chez qui je ne retourne plus )
    En espérant que cela t'aide tout de même

  6. #6
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    bon alors ca matin (la pause du we aidant ) j'ai résolu le probleme.
    Je suis pas certain de ce qui c'etait passé mais le truc (je crois) c'est que j'avais le jdic signé deployé a un endroit et qu'il etait egalement deployé en version non signé avec les autres librairies du projet.
    J'ai tout repris ce matin et la ca fonctionne.

    Je te remecie pour ton aide.

    @+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 48
    Points
    48
    Par défaut
    De rien, au moins ca me conforte dans l'idée que j'avais du réussir à le faire... (bin oui ca remonte à deux ans déjà donc ... )

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

Discussions similaires

  1. [XL-2010] Ouverture de classeur Excel avec macro depuis une macro
    Par kong985 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/03/2015, 09h55
  2. acceder à un fichier xml depuis une jsp
    Par rvfranck dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 04/10/2006, 18h12
  3. Lancer VncViewer depuis une page web
    Par Slayes dans le forum Windows
    Réponses: 6
    Dernier message: 17/09/2006, 10h46
  4. Focus sur JFileChooser lancer depuis une jsp
    Par Meunier dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 13/09/2006, 22h23
  5. [Débutant] Lancer procédure depuis une autre classe
    Par pugnator dans le forum Langage
    Réponses: 5
    Dernier message: 31/10/2005, 14h50

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