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

JavaScript Discussion :

Export d'un tableau vers Excel


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Points : 123
    Points
    123
    Par défaut Export d'un tableau vers Excel
    Bonjour,

    Je souhaiterais exporter une <table> vers Excel. Ma page est uniquement utilisée avec internet explorer, et je souhaiterais faire la même chose qu'on obtient avec un clic droit + export vers Excel, mais avec un bouton qui lancerait une fonction avec l'id de ma table en paramètre.

    J'ai trouvé le code suivant, que j'ai un peu adapté :

    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
    function exportExcel (targetTableID){
     
    var oExcel; // Open Excel 
    var oExcelSheet; // Sheet Excel 
    var oWkBooks; 
    var tableToExport;
     
    //get element to export
    tableToExport = document.getElementById(targetTableID);
     
    //copy 
    textRange = document.body.createTextRange(); 
    textRange.moveToElementText(tableToExport); 
    textRange.execCommand("Copy"); 
     
    //open excel and paste 
    oExcel = new ActiveXObject('Excel.Application'); 
    oWkBooks = oExcel.Workbooks.Add; 
    oExcelSheet = oWkBooks.Worksheets(1); 
    oExcelSheet.Application.Visible = true; 
     
    oExcelSheet.Activate(); 
     
    oExcel.ActiveSheet.Range('A1').Select; 
    oExcel.ActiveSheet.PasteSpecial(0,false,false); 
     
     
    oExcel.ActiveSheet.Cells.EntireColumn.AutoFit; 
    oExcel.ActiveSheet.Range('A1').Select;
     
    }
    Problème : "Automation server cannot create object", sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oExcel = new ActiveXObject('Excel.Application');
    Pourtant IE gère bien les ActiveX ?

    Quelqu'un a une idée ?

    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    C'est une question de sécurité...

    MS a pris conscience du danger des ActiveX et certaines protection ont été posées...

    Sinon, tu peux aussi regarder la version de ton IE, la sécurité mise dans les Options Internet, et la version de ton Office (y en a-t-il plusieurs installées ?), ...

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Sinon tu peux toujours créer un fichier Excel en PHP.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    vérifie aussi que excel est installé...

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Points : 123
    Points
    123
    Par défaut
    Merci pour vos réponses.

    J'ai une seule version d'Office : 2002.

    Concernant la sécurité appliquée par IE, est-il possible que certains ActiveX passent et d'autres pas ? En effet j'utilise le Msxml2.XMLHTTP ailleurs dans mon appli, il ne pose pas de problème.

    Sinon oui je peux toujours créer le fichier "à la main" en Java avec une API, mais ça m'embête de sortir la grosse artillerie juste pour ça.

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Aucune idée...

    Sinon, pense au nouveau format OpenXML de Office

    Simple à créer depuis n'importe quel langage de programmation, celui-ci n'en reste pas moins la dernière technologie dans le domaine de l'informatique !
    Il sera bientot pris en charge par Office 11 (Un outils de conversion Beta existe déjà et il marche à 100%) et l'est déjà dans Office 12 Beta, ou il est devenu le format par défaut...

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Points : 123
    Points
    123
    Par défaut
    J'ai jeté un coup d'oeil à ce format, ça m'a effectivement l'air très très intéressant pour ce genre d'applications à l'avenir. Malheuresement je ne peux pas l'utiliser pour le moment, ma boîte ayant ses standards et étant très à cheval là dessus. Quand on passera à Office 2007 sûrement.

    Je me suis donc rabattus sur la solution API Java : http://jexcelapi.sourceforge.net/ . C'est plus lourd que la fonction en javascript ci dessus, mais au moins je construis vraiment le fichier comme je veux, indépendamment de ma page html.

    Merci pour les infos

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

Discussions similaires

  1. Export tableau vers Excel
    Par stanilas dans le forum Struts 2
    Réponses: 4
    Dernier message: 19/08/2011, 11h42
  2. [Excel] Exporter un tableau vers excel
    Par legillou dans le forum Documents
    Réponses: 8
    Dernier message: 08/02/2006, 14h37
  3. Comment exporter un lien hypertexte vers excel
    Par Celia1303 dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 09h33
  4. Exporter un état QuickReport vers Excel.
    Par abdelghani_k dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/06/2004, 14h22
  5. [] [Excel] Exporter un graphe MSChart vers Excel
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 17h49

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