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 :

export d'un csv via php, Calc réagit bien mais pas Excel


Sujet :

Langage PHP

  1. #1
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut export d'un csv via php, Calc réagit bien mais pas Excel
    Bonjour,

    Dans le cadre de mon travail, je développe une interface de requêtes pour les gestionnaires.
    Quand elles cliquent sur une requête, je gère d'abord l'affichage HTML et ensuite, affecte à la propriété (string) csv de mon objet requête le contenu qui va bien, avec pour séparateur la virgule.

    Ensuite quand elles cliquent sur le bouton export, cela déclenche le code qui suit.

    Calc d'Open Office produit un tableau sans faille, Excel affiche les virgules et semble mal interpréter le séparateur...
    Y aurait-il une solution pour que les gestionnaires, quel que soit leur outil de travail, puisse récupérer un fichier propre ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    elseif(isset($_GET['export'])){
    	header("Content-Type: application/csv-tab-delimited-table");
    	header('Content-Disposition: attachement; filename="'.$_SESSION['titreReq'].'"');
    	echo $_SESSION['csv'];
    }
    Et voici la boucle qui affecte ma propriété csv, bien que je ne pense pas qu'elle soit en cause, mais sait-on jamais...
    Par exemple à la réflexion, je ne comprends pas pourquoi le premier champ apparaît TOUJOURS avec des guillemets dans le fichier .csv... Mystère pour moi, serait-ce ceci qui provoque le bug chez Microsoft ?
    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
     
    		//affecte la propriété csv 
    		$this->csv='';
     
     
    		//préparer la ligne des champs dans le csv
    		foreach ($champsBase as $nom => $index) {
    			$nomWeb=champWeb($nom);
    			if($nomWeb!=''){
    				$this->csv.='"'.$nomWeb.'",';
    			}
    			//penser au cas du nom de champ pas encore entré dans notre table champs
    			else{
    				$this->csv.='"Champ à saisir",';
    			}
    		}
    		$this->csv.=substr($this->csv,0,-1);
    		$this->csv.="\r\n";
     
    		$ligne='';
     
    		//boucle des data pour le csv
    		foreach($resultats as $num=>$enregistrement){	
    			$ligne='';
    			foreach($enregistrement as $champ=>$valeur){
    				$ligne.=$valeur.',';	
    			}
     
    			//supprimer la dernière virgule
    			$ligne=substr($ligne,0,-1);
    			//concaténer à csv en ajoutant le retour ligne
    			$this->csv.=$ligne."\r\n";
    		}
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    oh my god, je viens de m'apercevoir que j'avais oublié de préciser .csv dans le nom du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    elseif(isset($_GET['export'])){
    	header("Content-Type: application/csv-tab-delimited-table");
    	header('Content-Disposition: attachement; filename="'.$_SESSION['titreReq'].'.csv"');
    	echo $_SESSION['csv'];
    }
    Voyons si c'est le seul problème...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Bon, mon problème de fond est réglé.
    C'était bien cet oubli idiot qui faisait que excel ne connaissait pas l'extension du fichier.
    Mais je vous soumets toujours la question suivante parce que je suis de nature curieuse , pourquoi le premier champ (et seulement lui) a-t-il TOUJOURS des guillemets en dur dans le fichier .csv ?

    D'avance merci à ceux qui se pencheront sur ce problème passionnant.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. Conversion de fichier xls en csv via php
    Par Realniggaz dans le forum Langage
    Réponses: 1
    Dernier message: 05/06/2013, 15h31
  2. Générer un fichier csv via php
    Par ghir_ana dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/03/2011, 16h52
  3. [MySQL] Exporter table vers csv via PhpMyAdmin
    Par mikael2235 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2010, 20h47
  4. [CSV] Tableau php avec mysql dans un fichier excel
    Par saraza dans le forum Langage
    Réponses: 3
    Dernier message: 06/01/2009, 18h33
  5. Réponses: 1
    Dernier message: 10/01/2008, 13h52

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