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 :

Afficher données d'une feuille Excel externe


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Points : 368
    Points
    368
    Par défaut Afficher données d'une feuille Excel externe
    Bonjour,

    Je suis un très, très grand débutant…néanmoins j'essaye de comprendre et d'essayer…..

    J'ai créé une page web, sur un serveur local, permettant de diffuser des infos aux collègues.

    Sur cette page, j'ai un menu en accordéon au centre,

    Je souhaiterai mettre sur le côté droit de cette page, des données issues d'un classeur Excel : sur ce classeur Excel, se trouve différentes valeurs qui sont mises à jour tous les jours (=par exemple, nombre de colis enregistrés, nombre de colis expédiés, etc….).

    J'aimerai donc que sur ma page web, apparaissent certaines données de cette feuille : ainsi, quand le collègue ouvre la page web, il a toutes les informations, lui évitant d'ouvrir la feuille Excel….

    Et je ne sais pas comment faire….et/ou procéder….

    Merci pour votre aide,

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Points : 368
    Points
    368
    Par défaut
    En farfouillant sur le Web, j'ai vu qu'apparemment, il était possible d'importer des données Excel avec un fichier ".csv"……je peux, dans ma macro Excel m'arranger pour avoir effectivement l'enregistrement au format ".csv", mais je bloque toujours sur le "comment et où le mettre dans le script"….

    En vous remerciant pour votre aide,

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par ericdev67 Voir le message
    Je suis un très, très grand débutant…
    Grand comment ? 2m10 ?

    Citation Envoyé par ericdev67
    Je souhaiterai mettre sur le côté droit de cette page, des données issues d'un classeur Excel
    Citation Envoyé par ericdev67
    En farfouillant sur le Web, j'ai vu qu'apparemment, il était possible d'importer des données Excel avec un fichier ".csv"
    Alors effectivement ce sera plus simple si tu arrives à exporter ta feuille en CSV, vu que le CSV est un format texte, on peut donc l'analyser facilement.

    La première question à se poser c'est la nature de ton serveur local, et donc le genre de langage qu'il peut faire tourner : est-ce un serveur IIS (langages Microsoft = VB, C#, etc.) ou plutôt un serveur Apache (= PHP le plus souvent) ? Ou bien est-ce un simple serveur de fichiers qui n'inclut pas de langage de script ?

    Ensuite, demande-toi à quelle fréquence tu veux actualiser la feuille Excel. Si la fraîcheur des infos n'est pas trop importante, tu peux essayer d'automatiser l'exportation en CSV, par exemple une fois par jour à minuit. À moins que tu aies la motivation de refaire l'exportation à la main à chaque fois que tu modifies la feuille.

    Une fois que tu as la réponse à ces deux questions, selon moi, il ne reste plus qu'un détail à régler : de quel côté (serveur ou client) tu traites le CSV. Si tu le traites côté serveur ça te permet d'envoyer directement le code HTML correspondant ; si tu le traites côté client, en plus de l'affichage, ça peut permettre à tes collègues de récupérer le CSV s'ils le souhaitent.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Points : 368
    Points
    368
    Par défaut
    Merci Watilin,

    La première question à se poser c'est la nature de ton serveur local, et donc le genre de langage qu'il peut faire tourner : est-ce un serveur IIS (langages Microsoft = VB, C#, etc.) ou plutôt un serveur Apache (= PHP le plus souvent) ? Ou bien est-ce un simple serveur de fichiers qui n'inclut pas de langage de script ?
    Ce que je voulais dire, c'est qu'au lieu qu'à l'ouverture de la page Web, page qui est sur un serveur partagé, dans le code script Javascript, au lieu qu'il se connecte par internet pour rechercher le Jquery.js, je l'ai mis dans mon répertoire, ainsi, si un collègue le met sur une clef USB et/ou veut le copier/coller à la maison, il peut le faire sans problème…

    Ensuite, demande-toi à quelle fréquence tu veux actualiser la feuille Excel. Si la fraîcheur des infos n'est pas trop importante, tu peux essayer d'automatiser l'exportation en CSV, par exemple une fois par jour à minuit. À moins que tu aies la motivation de refaire l'exportation à la main à chaque fois que tu modifies la feuille.
    En fait, tous les matins, le fichier Excel est mis à jour, c'est donc à ce moment là qu'il faudrait que les infos soient rapatriées (je ferai une macro pour un enregistrement en .csv du fichier.

    Merci pour ton aide,

    (et non, je me suis arrêté à 1,80 mètres…..mais vraiment débutant…. )

  5. #5
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    La question à te pose également est : à partir d'où vas tu "attaquer ton fichier de données"

    du serveur ?
    coté serveur il est possible d'aller lire parser des données d'un fichier csv ou xml ...

    du client ?
    là c'est plutot en ajax qu'il faudra aller récupérer les données du fichier csv ou xml
    avec jquery ça se fait assez simplement pour parser le contenu du retour en xml ou csv
    le format xml sera plus direct car il sera exploitable directement en tant que tel avec un dataType correct

    Choisis bien le format délivré par le serveur, l'exploitation, des données en js n'en sera que facilitée.
    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 !

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Citation Envoyé par ericdev67 Voir le message
    […] si un collègue le met sur une clef USB et/ou veut le copier/coller à la maison, il peut le faire sans problème…
    Donc en fait tu n'as pas de serveur local ? Ou alors il y en a un sur les ordis de tous tes collègues à leurs domiciles ?

    Tu as besoin d'un serveur local pour accéder à ta page en http: car, si tu y accèdes en file:, le protocole de sécurité des navigateurs ne te permettra pas d'ouvrir le fichier csv.

    Voici déjà une base de script avec l'exemple tiré de la page Wikipédia.

    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
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <!DOCTYPE html>
    <html lang="fr">
    <head>
       <meta charset="utf-8">
       <title>Analyse de fichiers CSV</title>
       <style>
       
       body {
          font-family: Verdana, Helvetica, sans-serif;
       }
       table {
          border-collapse: collapse;
          border: solid thin silver;
       }
       td {
          border: solid thin silver;
          padding-right: 1em;
       }
       
       </style>
    </head>
    <body>
     
    <p><textarea id="csv" rows="5" cols="36">Sexe,Prénom,Année de naissance
    M,Alphonse,1932
    F,Béatrice,1964
    F,Charlotte,1988</textarea></p>
     
    <p><button id="go">Analyser</button></p>
     
    <div id="resultat"></div>
     
    <script>
    "use strict";
     
    var $csv = document.getElementById("csv");
    var $go = document.getElementById("go");
    var $resultat = document.getElementById("resultat");
     
    $go.addEventListener("click", function() {
       var csvText = $csv.value;
       
       if ($resultat.firstElementChild) {
          $resultat.removeChild($resultat.firstElementChild);
       }
       
       var $table = document.createElement("table");
       
       var lines = csvText.split("\n");
       lines.forEach(function(line) {
          var fields = line.split(",");
          var $row = $table.insertRow(-1);
          fields.forEach(function(field) {
             var $cell = $row.insertCell(-1);
             $cell.appendChild(document.createTextNode(field));
          });
       });
       
       $resultat.appendChild($table);
    });
     
    </script>
    </body>
    </html>

    C'est brut de pomme : pas moyen de choisir les séparateurs (le saut de ligne et la virgule), pas de gestion des guillemets ni du cas où on veut inclure le séparateur dans une cellule, etc. C'est juste une base de travail pour te montrer comment on peut faire.

    Ça marche sous IE9+, j'ai pas fait l'effort de compatibilité pour les versions antérieures. De toute façon, quand tu adapteras ce code tu utiliseras jQuery donc tu n'auras pas à te soucier de ça.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    en http: le fichier csv devra être hébergé en effet
    pour être attaqué en ajax par exemple

    Une autre possibilité serait de copier le contenu du fichier dans un textarea ... mais cela suppose une manipulation complémentaire
    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 !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Points : 368
    Points
    368
    Par défaut
    Merci Watilin,
    Merci SpaceFrog,

    Je vais suivre à la lettre vos recommandations, je reviens vers vous si problèmes, mais, d'après mes premiers essais et recherches sur le web, j'ai "presque" (=je fais des essais....) trouvé ma solution....

    Merci,

    A+ pour de prochaines aventures.....

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

Discussions similaires

  1. Importer des données d'une feuille Excel vers TABLE
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/11/2006, 09h10
  2. Réponses: 2
    Dernier message: 16/10/2006, 11h24
  3. Importer les données d'une feuille EXCEL
    Par codial dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/02/2006, 09h07
  4. Réponses: 3
    Dernier message: 16/02/2005, 15h39
  5. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32

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