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

jQuery Discussion :

Script export donnes table en CSV


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut Script export donnes table en CSV
    Bonjour,

    J'ai récupérer ce script JS pour exporter les données d'un tableau HTML
    Code html : 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
    	<div id="dvData">
    	<table id="table_result" border="2">   
    		<tr bgcolor="oldlace">	
    			<th class=""></th>
    			<th colspan="2">Distribution for all categories entityX by sphereN / all sphere all entities</th> 		 
    			<th colspan="2">distribution for all categories for each entity by sphereN</th>    
    		</tr> 
    		<tr bgcolor="oldlace">		  
    			<th class=""><div class=“highlight_rankEntity”><a href="index.php?id=recherche_ent">Entity</a></div></th> 		 
    			<th class="">Inside</th>  
    			<th class="">Outside</th>	
    			<th class="">Inside</th>  
    			<th class="">Outside</th>	
    		</tr> 
                    <tr>
                             <td> contruction dynamique </td>
                    </tr>
    	</table>  	  
    	</div>
    	<a href="#" class="export">Export Table data into Excel</a>

    Et coté JS :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    $(document).ready(function () {
     
        function exportTableToCSV($table, filename) {
     
            var $rows = $table.find('tr:has(td)'),
     
                // Temporary delimiter characters unlikely to be typed by keyboard
                // This is to avoid accidentally splitting the actual contents
                tmpColDelim = String.fromCharCode(11), // vertical tab character
                tmpRowDelim = String.fromCharCode(0), // null character
     
                // actual delimiter characters for CSV format
                colDelim = '";"',
                rowDelim = '"\r\n"',
     
                // Grab text from table into CSV formatted string
                csv = '"' + $rows.map(function (i, row) {
                    var $row = $(row),			 
    					//$cols = $row.find('th');
                        $cols = $row.find('td');
     
                    return $cols.map(function (j, col) {
                        var $col = $(col),
                            text = $col.text();
     
                        return text.replace(/"/g, '""'); // escape double quotes
     
                    }).get().join(tmpColDelim);
     
                }).get().join(tmpRowDelim)
                    .split(tmpRowDelim).join(rowDelim)
                    .split(tmpColDelim).join(colDelim) + '"',
     
                // Data URI
                csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
     
            $(this)
                .attr({
                'download': filename,
                    'href': csvData,
                    'target': '_blank'
            });
        }
     
        // This must be a hyperlink
        $(".export").on('click', function (event) {
            // CSV
            exportTableToCSV.apply(this, [$('#dvData>table'), 'export.csv']);
     
            // IF CSV, don't do event.preventDefault() or return false
            // We actually need this to be a typical hyperlink
        });
    });

    2 problèmes :

    1/ les balise "titre" <th> ne sont pas prise en compte, comment faire pour les prendre en compte ?
    2/ comment faire pour utiliser ce script sur plusieurs tableau dans la même page ?

    Merci

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cols = $row.find('td');
    faut lui faire finder le th aussi

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exportTableToCSV($table, filename)
    tu passes le table en param ...
    Boucle sur la collections de tables de la page ...
    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
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    1/ Oui, j'ai vu ça, j'avais tester en remplaçant TD par TH ça marche mais bien sur exporte que les th.
    2 endroits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var $rows = $table.find('tr:has(td)'),
    [...]
    $cols = $row.find('td');
    Mais comment faire pour rajouter la gestion du th ? Faut tout dupliquer ?

    2/ tester aussi mais ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" class="export" onclick="exportTableToCSV('dvData>table', 'export.csv');">Export Table data into Excel</a>
    J'ai tester différent chose dans les paramètres, mais quand je click rien se passe.

    J'ai virer aussi ceci dans la partie JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        // This must be a hyperlink
        $(".export").on('click', function (event) {
            // CSV
            exportTableToCSV.apply(this, [$('#dvData>table'), 'export.csv']);
     
            // IF CSV, don't do event.preventDefault() or return false
            // We actually need this to be a typical hyperlink
        });
    Après, je ne sais pas a quoi sert ceci, si a garder ou pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).ready(function () {

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    As tu testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cols = $row.find('th, td');
    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 !

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    Ca marche mais avec cela aussi : var $rows = $table.find('tr:has(th,td)'),
    Merci

    Par contre, ça ne prends pas en compte le colspan, moins gênant mais si y a un petit truc a faire pour que ça soit gérer suis intéressé.


    Reste plus a trouvé comment appelé la fonction avec les bon paramètres.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 52
    Par défaut
    J'ai testé plusieurs chose pour appeler la fonction pour chaque tableau dont ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="#" class="export" onclick="exportTableToCSV.apply(this, [$('#dvData>table'), 'export.csv']);">Export Table data into Excel</a>	
     
    <a href="#" class="export" onclick="exportTableToCSV($('#dvData>table'), 'export.csv');">Export Table data into Excel</a>

    Mais rien se passe.

Discussions similaires

  1. Script extraction données dans fichier CSV
    Par nollier dans le forum VBScript
    Réponses: 18
    Dernier message: 20/06/2008, 09h32
  2. Exportation données tables
    Par JmL40 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 14/06/2007, 00h34
  3. [phpMyAdmin] Problèmes d'exportation de tables en CSV
    Par seb92500 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 31/10/2006, 10h53
  4. [Paradox] Automatiser l'export de table en CSV
    Par Laurent Dardenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/02/2005, 15h16

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