Partage
  • Partager sur Facebook
  • Partager sur Twitter

Extraire données CSV en javascript

    19 juin 2018 à 11:00:23

    Bonjour,

    Est-il possible d'exploiter les données d'un fichier CSV en javascript?

    Pour, par exemple, affecter des valeurs numériques à un calcul déjà établi en fonction des row du fichier excel?

    Par exemple : pour une ligne avec [34, 46, 21] sera t-il possible de dire à ma fonction de prendre la ligne 1 et la colonne 1 (34) et de l'affecter à un calcul déjà établi dans une autre fonction?

    Et existe t-il des librairies pratiques pour exploiter les fichier CSV?

    Pour vous donner une représentation de mon idée; disons que j'ai une liste déroulante avec des résolutions de vote, le fichier CSV contient plusieurs lignes où figurent des résultats déjà enregistrés (pour contre abstention), il faudrait que ces résultats s'ajoutent aux nouveaux résultats qui arriveront, et ce, pour chaque résolutions (il y en a 77). Je ne sais pas trop comment faire si l'un d'entre vous aurait une piste ce serait sympa!

    Merci.

    -
    Edité par GHANES OUTOUDERT 19 juin 2018 à 11:01:17

    • Partager sur Facebook
    • Partager sur Twitter
      22 juin 2018 à 9:40:22

      J'ai trouvé une piste,  ça extrait bien mon CSV mais ça ne lit pas les autres valeurs du tableau (contre, abstention et le total)

      $.ajax({
          type: "GET",
          url: "test.csv",
          dataType: "text",
          success: function (data) {
      
              var lines = data.split(/\r\n|\n/);
      
              //Set up the data arrays
              var pour = new Array();
              var contre = new Array();
              var abstention = new Array();
              var total = new Array();
      
              var headings = lines[0].split(','); // Splice up the first row to get the headings
      
              for (var j = 1; j < lines.length; j++) {
                  var values = lines[j].split(','); // Split up the comma seperated values
                  // We read the key,1st, 2nd and 3rd rows 
                  pour.push(parseFloat(values[0]));
                  contre.push(parseFloat(values[1]));
                  abstention.push(parseFloat(values[2]));
                  total.push(parseFloat(values[3]));
              }
      
              var reso = ['Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q34', 'Q35', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q47', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60'];
              for (var i = 0; i < reso.length; i++) {
                  $('#'+reso[i]).on('click', function () {
                      compteur_total = 0;
                      compteur_barre_one = 0;
                      compteur_barre_two = 0;
                      compteur_barre_three = 0;
      
                      compteur_barre_one = compteur_barre_one + pour[0];
                      compteur_barre_two = compteur_barre_two + contre[0];
                      compteur_barre_three = compteur_barre_three + abstention[0];
                      compteur_total = compteur_total + total[0];
      
      
                      affichbarres();
                      console.log(compteur_barre_one, compteur_barre_two, compteur_barre_three, compteur_total); 
                  });
              }
          }
      });

      -
      Edité par GHANES OUTOUDERT 22 juin 2018 à 11:52:26

      • Partager sur Facebook
      • Partager sur Twitter
        22 juin 2018 à 16:58:09

        De souvenir, tu as la librairie Papaparse qui permet de lire le contenu d'un CSV en 3 lignes : https://www.papaparse.com/

        Je l'ai un peu utilisée pour un projet il y a quelques mois, c'était pas mal du tout et très performant tant que le CSV n'est pas malformé.

        -
        Edité par Genroa 22 juin 2018 à 16:59:05

        • Partager sur Facebook
        • Partager sur Twitter
        /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
          7 janvier 2019 à 12:43:12

          Bonjour,

          Genroa : ayant un besoin similaire, j'ai tenté d'utiliser la librairie Papaparse que tu mentionnes, mais je n'arrive pas à m'en servir (je ne suis pas expert...loin de là).

          J'ai un fichier csv créé par un lien : http://hubeau.eaufrance.fr/api/v1/niveaux_nappes/chroniques.csv?code_bss=03263X0004%2FFAEP%2C02558X0034%2FP%2C03626X0026%2FP%2C03622X0027%2FPZ%2C03287X0018%2FS1&size=336&date_debut_mesure=2018-12-01&date_fin_mesure=2019-01-07&sort=asc

          Je voudrais récupérer ce tableau, pour pouvoir ensuite le modifier (remplacer les points par des virgules, ne garder que certaines colonnes, etc.).

          J'ai tenté ce script, mais ça ne donne rien (aucun affichage, aucune sortie)...mais je n'ai pas dû trop comprendre comment ça fonctionne. Où met-on la donnée d'entrée (le csv)?

          	<script LANGUAGE="Javascript">
          
          		function donnees(csv){
          
          			var csv="http://hubeau.eaufrance.fr/api/v1/niveaux_nappes/chroniques.csv?code_bss=03263X0004%2FFAEP%2C02558X0034%2FP%2C03626X0026%2FP%2C03622X0027%2FPZ%2C03287X0018%2FS1&size=336&date_debut_mesure=2018-12-01&date_fin_mesure=2019-01-07&sort=asc";
          
          			// Parse CSV string
          			var data = Papa.parse(csv);
          
          			// Convert back to CSV
          			var csv = Papa.unparse(data);
          
          			// Parse local CSV file
          			Papa.parse(file, {
          				complete: function(results) {
          					console.log("Finished:", results.data);
          				}
          			});
          
          			// Stream big file in worker thread
          			Papa.parse(bigFile, {
          				worker: true,
          				step: function(results) {
          					console.log("Row:", results.data);
          				}
          			});
          			
          		};
          		donnees();
          	</script>

          Merci pour ton aide.

          -
          Edité par NikolasAubourg 7 janvier 2019 à 12:45:53

          • Partager sur Facebook
          • Partager sur Twitter

          Extraire données CSV en javascript

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown