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

Langage PHP Discussion :

[CSV] CSV - retour de ligne dans une cellule


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Par défaut [CSV] CSV - retour de ligne dans une cellule
    bonjour,

    j'utilise une fonction toute bête pour extraire des données de ma base et les exporter en CSV.

    J'ai parfois des retours à la ligne (par exemple dans le champ adresse, elle peut être sur plusieurs lignes).

    Ceux si sont bien pris en compte lorsque j'ouvre mon fichier sous excel WINDOWS (la cellule adresse conient bien 2 ou 3 lignes)

    Ils ne sont pas traités correctement sous Mac : le retour à la ligne est pris tel quel, ma cellule ne contient qu'une ligne,la suite se retrouve dans la première cellule de la ligne suivante et non pas dans la même cellule.

    Mes données sont bien encadrées par des "

    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
      	$SQL="SELECT T_EXPOSANT.RAISON, T_EXPOSANT.NOM, T_EXPOSANT.COD_TYPE, "
            ."T_EXPOSANT.ADRESSE, T_EXPOSANT.CP, T_EXPOSANT.VILLE FROM T_EXPOSANT ";
     
        $csv_output ="Raison Sociale,Nom,Adresse,CP,Ville";
        $csv_output .="\r\n";   
     
      	$tblREQUETE = mysql_query($SQL);
      	while ($val = mysql_fetch_array($tblREQUETE)) {
     
      	        $Raison=ereg_replace("\r\n","\n",$val["RAISON"]);
      	        $Raison=ereg_replace("\"","",$Raison);
      	        $Nom=ereg_replace("\r\n","\n",$val["NOM"]);
                	$Nom=ereg_replace("\"","",$Nom);
      	        $Adresse=ereg_replace("\r\n","\n",$val["ADRESSE"]);
                	$Adresse=ereg_replace("\"","",$Adresse);
                	$CP=$val["CP"];
      	        $Ville=ereg_replace("\r\n","\n",$val["VILLE"]);
                	$Ville=ereg_replace("\"","",$Ville);            
     
                $csv_output .="\"$Raison\",\"$Nom\",\"$Adresse\",\"$CP\",\"$Ville\",";
                $csv_output .="\r\n";                         
      	 }      
      	//#################################################################################
     
        header("Content-type: application/vnd.ms-excel");
        header("Content-disposition: attachment; filename=".$NomFichier.".csv");
        print $csv_output;
        exit;
     
    }
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    Tu peux toujours essayer l'inverse : faire un csv avec un retour a la ligne sur MAC et regarder avec un editeur de texte, quel caracteres il utilise.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Par défaut
    J'ai déjà essayé ça :

    sur le mac : faire une feuille avec 1 cellule contenant 2 lignes, enregistrer en CSV.
    j'édite ensuite le .csv avec un éditeur héxa, le caractère est 0D, soit 13 d'après une table des caractère ascii.
    et l'insertion d'un chr(13) en php me donne retour à la ligne suivante dans excel...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    MacOS utilise CR comme retour a la ligne
    Windows utilise CRLF
    et Unix LF

    Sur cette base, je crois qu'il n'est pas possible d'avoir un CSV avec des retours universels.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    MacOS utilise CR comme retour a la ligne
    Windows utilise CRLF
    et Unix LF

    Sur cette base, je crois qu'il n'est pas possible d'avoir un CSV avec des retours universels.
    Bon matin l'Ami

    Tu veux dire que sur notre forum préféré, les visiteurs en MAC ou en UNIX, ne voient pas la boite d'édition des messages comme nous

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quand l'utilisateur saisi son texte dans le champ, a priori effectivement les retours a la ligne sont écrits différemment selon le système.
    Quand le message est ensuite affiché, les \n ou \r\n sont de toute facon transformé en <br />.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Code ASCII du retour à la ligne dans une cellule Excel
    Par soumou dans le forum Assembleur
    Réponses: 11
    Dernier message: 28/06/2025, 10h04
  2. Retour à la ligne dans une cellule de tableau
    Par v0nv0n dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 20/11/2009, 14h27
  3. [CSS] Empecher le retour à la ligne dans une cellule
    Par pekka77 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/02/2009, 16h50
  4. Retour à la ligne dans une cellule
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/02/2008, 10h42
  5. Retour à la ligne dans une cellule de Gridview
    Par slokix dans le forum ASP.NET
    Réponses: 14
    Dernier message: 26/09/2007, 13h14

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