Csv to table

Fermé
badreddine ghazouani Messages postés 4 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 juin 2013 - 27 juin 2013 à 18:17
badreddineghazouani Messages postés 5 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 5 juillet 2013 - 1 juil. 2013 à 12:32
Je cherche à manipuler le contenu d'un fichier csv dans un tableau.
J'utilise pour cela la fonciton fgetcsv(fichier, taille, separateur) qui me
renvoie tout le fichier ligne par ligne (avec un while).

Je voudrais pouvoir manipuler ce tableau par ligne et par colonnes. J'arrive
facilement à isloer une colonne, mais comment faire pour isloer une ligne ?

8 réponses

commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
27 juin 2013 à 18:23
Bonjour,

Ça serait pas mal si tu dis ce que tu utilises comme logiciel ou comme langage.

Je n'ai pas compris ce que tu veux dire par isoler une ligne.
D'après ce que je crois comprendre, il te faut le caractère de retour à la ligne. Il est différent d'un langage à un autre, mais tu peux essayer "\n"

Cordialement,
0
badreddine ghazouani Messages postés 4 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 juin 2013
27 juin 2013 à 18:28
bonjour
ca serait comme language par example comment affiche uniqument certaine ligne du tableau
0
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
28 juin 2013 à 11:07
lol, par langage, je voulais dire si c'est du C, java, python, VBA ...
On peut faire des choses avec tous ces langages de programmation, mais les méthodes changent un peu d'un langage à l'autre.
Je n'ai pas bien compris ce que tu as voulu dire. Ça serait pas mal si tu explique un peu mieux ton problème.
0
badreddine ghazouani Messages postés 4 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 juin 2013
28 juin 2013 à 11:13
Bonjour,


Je cherche à manipuler le contenu d'un fichier csv dans un tableau.
J'utilise pour cela la fonciton fgetcsv(fichier, taille, separateur) qui me
renvoie tout le fichier ligne par ligne (avec un while).

Je voudrais pouvoir manipuler ce tableau par ligne et par colonnes. J'arrive
facilement à isloer une colonne, mais comment faire pour isloer une ligne ?
bref on utulisant script (php) pour vider tout les ligne d'une colone choisie ?aidez -moi stp.;.;.;voila le code source qui j'utulise pour manipuler le contenu du fichier dans un tableau:


<?php

$row = 1;
if (($handle = fopen("fichier.csv", "r")) !== FALSE) {

echo '<center> <table border="1" > ';

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
if ($row == 1) {

echo '<thead align="center" ><tr>';
}else{
echo '<tr>';
}

for ($c=0; $c < $num; $c++) {
//echo $data[$c] . "<br />\n";
if(empty($data[$c])) {




$value = " ";
}else{
$value = $data[$c];
}
if ($row == 1) {
echo '<th>'.$value.'</th>';
}else{
echo '<td>'.$value.'</td>';
}
}

if ($row ==1) {
echo '</tr></thead><tbody>';
}else{
echo '</tr>';
}
$row++;
}

echo '</tbody></table></center>';
fclose($handle);
}
?>
0
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
28 juin 2013 à 15:45
Bonjour,

C'est donc du php avec lequel tu veux ouvrir un fichier *.csv.
Je pense que la méthode fgetcsv ne connait pas les retours chariots (ça peut subvenir quand les systèmes d'exploitations sont multiples, cad quand il y a basculement entre macintosh, windows et linux).

Ce problème est connu pour les anciennes version de php. Afin de le contourner, il faut activer l'option auto_detect_line_endings

<?php
ini_set("auto_detect_line_endings", true);
// reste du code
?>

Cordialement,

P.S. Tu trouveras plus d'informations sur ce lien ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
badreddine ghazouani Messages postés 4 Date d'inscription jeudi 27 juin 2013 Statut Membre Dernière intervention 28 juin 2013
Modifié par badreddine ghazouani le 28/06/2013 à 16:23
apparament tu ne compris pas mon besion ?je veut simplifier un peu
tout simplement j'ai un tableau qui recoit des donnees de fichier csv
ces tableau avec 5 colone et n ligne ;par example je doit affiche mon tableau avec deux premier colone vide c a dire sans ligne
0
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
28 juin 2013 à 16:44
Je n'ai apparemment pas compris ce que tu cherches à faire. Mais on va y arriver tout de même :-)

Peux être j'arriverai mieux à comprendre ça si tu m'explique un peu le but de ce programme ou tout simplement ce que contient le tableur.

Il y a une entête, quelles sont les cinq entrée (ou titre de colonnes).
Quelles sont les données dans les colonnes. Si tu peux donner des exemples.

Je n'ai pas compris ce que tu signifie par "... deux premières colonnes vides, donc sans ligne". Juste pour se mettre d'accord sur les termes; une ligne signifie pour moi row, et colonne ta variable $c.
0
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
28 juin 2013 à 17:00
Je pense que je comprends ce que tu veux dire;
Ça doit être le paramètre $dara qui te préoccupe.
Data peut contenir une ligne, et une fois la ligne stockée dans cette variable, tu bascule entre les colonnes avec l'indice $c. Et peut être tu veux savoir si tu peux utiliser la variable $data contenant une colonne et que tu puisses basculer entre les différentes lignes avec une variable du genre $r.

En fait, les fichiers csv sont tout simplement des fichiers texte. Les données sont écrites de la manière suivante:
...
donnée_m1, donnée_m2, donnée_m3, ...
donnée_n1, donnée_n2, donnée_n3, ...
...

La fonction fgetcsv récupère les lignes une par une car c'est l'ordre le plus facile pour lire un fichier.

Si tu veux récupérer le contenu d'une colonne, il faut parcourir toutes les lignes avec cette fonction et stocker pour chaque ligne la valeur de la colonne voulue dans une variable liste.

Les programmateurs n'aiment pas généralement ce genre de manipulations. On arrive toujours à retravailler le programme pour s'en passer du besoin de charger une colonne entière. Je te conseille d'écrire ton programme d'une manière à ne pas avoir besoin de cette opération. Mais s'elle s'avère vraiment nécessaire, tu peux faire comme je viens de dire avant.

Pour créer une variable liste:
$ma_table = array()
Pour ajouter une valeur
$ma_table[] = ma_valeur

Cordialement,
0
badreddineghazouani Messages postés 5 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 5 juillet 2013
1 juil. 2013 à 12:32
exactement Il y a une entête, qui sont les cinq entrée (ou titre de colonnes);sa serait toujour affiché est jouer uniquement sur les champ ;j'espere qui tu compris et merci;
0