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 :

Générer un csv dans une popup avec IE et Firefox


Sujet :

JavaScript

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut Générer un csv dans une popup avec IE et Firefox
    Bonjour,

    J'ai, à l'aide de d'une feuille de style XSL, effectué la pagination et les tris d'une tableau dont les données sont alimentées par une source XML présente dans ma page HTML.

    Je voudrai générer aussi un fichier export au format CSV.
    La génération du contenu dans une variable javascript ne me pose aucun problème.

    Le problème est que je voudrai que ce contenu s'ouvre dans une nouvelle fenêtre mais avec l'application associé au fichier CSV (Excel pour les postes Windows, si ils posèdent le poduit).

    Je ne sais pas comment définir des headers http ou autre chose via javascript.

    J'ai essayé le script suivant mais les données s'affiche dans mon navigateur (IE ou Firefox :
    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
    <html>
    <head>
    <script language="Javascript">
    function test() {
      //var lFenetre = window.open("about:blank", "test", "");
      var lFenetre = window.open("about:blank", "test", "");
      //alert(lFenetre.document);
      lFenetre.document.open();
      lFenetre.document.write("<html>\n<head>\n<meta HTTP-EQUIV=\"Content-Type\" CONTENT=\"application/csv-tab-delimited-table\">\n<meta HTTP-EQUIV=\"Content-Disposition\" CONTENT=\"filename=export.csv\">\n</head>\nQQQ;rrr\nzrz;rzrz\nzrzr;zrzr\nzzrztg;rtzeze\nzrtztzrt;rsfger</html>");
      lFenetre.document.close();
    }
    </script> 
    </head>
    <body>
    Ceci est un test 
    <a href="javascript:test()">test</a>
    </body>
    </html>
    .

    Merci pour toute l'aide que vous pourrez m'apporter.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Fais une recherche sur google avec "type mime application/vnd.ms-exce"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Fais une recherche sur google avec "type mime application/vnd.ms-exce"
    Je connais le content-type qui au navigateur d'utiliser Excel.
    De plus il faut y ajouter
    Content-disposition: attachment; filename=\"monsuperfichier.csv\"
    pour que cela fonctionne.

    Pas de soucis si je répons à l'aide d'un serveur d'application (PHP ou JAVA)

    Mon problème réside dans le fait que je veux le faire en Javascript.
    Aussi je ne sais pas définir ces headers à une nouvelle page via javascript.

    J'ai vu des choses comme url data

    <a href="data:content-type;encoding, mes data"></a>

    Le priblème est que cela ne fonctionne pas sous IE, de plus je ne peux indiquer que le content type et pas Content-disposition: attachment; filename=\"monsuperfichier.csv\" aussi Firefox n'ouvre pas Excel si je mets un content type text/csv, si je mets application/vnd.ms-excel, alors il interprète mal mon fichier csv et je retrouve des toto;titi;tutu dans une cellule.

    Et de plus je suis bloqué avec IE.

    aussi je me demande sil il est possible via javascript de définir pour une nouvelle fenêtre le contenu ainsi que le content-type et le Content-disposition

    Merci d'avance.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    document.createElement('meta') ?
    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script type='text/javascript'>
    function setHeader(){
    	var newMeta=document.createElement('meta');
    	newMeta.content="text/html";
    	newMeta.charset="utf-8";
    	document.getElementsByTagName('head')[0].insertBefore(newMeta,document.getElementsByTagName('title')[0]);
    	alert(	document.getElementsByTagName('meta').length)
     
    }
    </script>
    </head>
     
    <body onload="setHeader()">
     
    </body>
     
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Importer un fichier csv dans une table avec une commande sql ?
    Par pepito62 dans le forum Import/Export
    Réponses: 8
    Dernier message: 25/03/2015, 15h10
  2. Evenement onload dans une popup avec IE
    Par drac35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/07/2011, 08h46
  3. passer valeur d'un textarea dans une popup avec un bouton html ?
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/09/2008, 12h44
  4. Réponses: 4
    Dernier message: 15/05/2008, 11h06
  5. Réponses: 3
    Dernier message: 20/09/2006, 16h07

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