Conversion données formulaires HTM à Excel

Fermé
GW3D Messages postés 9 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 15 novembre 2017 - Modifié par crapoulou le 14/08/2012 à 22:58
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 21 août 2012 à 12:37
Bonjour à tous,

Je n'arrive pas à avoir mes données de formulaire dans différentes colonnes dans Excel.

J'ai donc un formulaire HTML, une page avec du code PHP et un fichier .csv.

Il doit y avoir une erreur quelques parts, mais je ne la trouve pas.
Je pense que c'est au niveau de mon PHP avec tout simplement les /t, mais je ne sais pas sinon.

Voici mon code formulaire HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    
<html xmlns="http://www.w3.org/1999/xhtml">    
 <head>    
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />    
<title>Ki-oon</title>    
<link href="css/reset.css" rel="stylesheet" type="text/css" />    
<link href="css/style_css.css" rel="stylesheet" type="text/css" />    
<link href="css/enquete.css" rel="stylesheet" type="text/css" />    
  <script src="js/page_enquete_valid.js" type="text/javascript"></script>    
</head>    

<?php    
mysql_connect("XXXXXXXXXX", "XXXXXXXXXX", "XXXXXXXXXX");    
mysql_select_db("bgraphkioon");    
?>    

<body>    

<div id="global">    
  <?php include("header.php"); ?>    
  <!-- ------------------- Contenu ------------------ -->    

    <div id="contenu_enquete">    
  <div class="enquete_tittle">Enquête</div>    
          
<!-- ------------------------ Enquête ------------------------- -->    
        <h1>Enquête de satisfaction</h1>    
        <div class="txt">    
      
  <form name="abonnement" method="post" action="page_enquete_mail.php" id="abonnement" onsubmit="return validation_contact()">    
  <h1>Contactez-nous</h1>    
  <p class="">Afin d'améliorer nos offres. Nous proposons ce formulaire qui nous permettra de récolter et de traiter vos données.</p>    
        <p>Celui-ci est totalement anonyme.</p>    
        <p>Nous vous remercions d'avance pour votre participation?</p>    
      
  <div class="colonneContact">    
  <li>    
            <label>Age    
            <span class="small"></span>    
            </label>    
            <input type="radio" name="age" id="age" value="Entre 6 et 12 ans" />Entre 6 et 12 ans    
            <input type="radio" name="age" id="age" value="Entre 12 et 18 ans" />Entre 12 et 18 ans    
            <input type="radio" name="age" id="age" value="Entre 18 et 26 ans" />Entre 18 et 26 ans    
            <input type="radio" name="age" id="age" value="Entre 26 ans et 40 ans" />Entre 26 ans et 40 ans    
            <input type="radio" name="age" id="age" value="Plus de 40 ans" />Plus de 40 ans    
        </li>    
        <li>    
            <label>Appartenance sexuelle    
            <span class="small">*</span>    
            </label>    
            <input type="radio" name="sexe" id="sexe" value="femme" />Femme    
            <input type="radio" name="sexe" id="sexe" value="homme" />Homme    
        </li>    
  <li>    
            <label>Pays :    
            <span class="small">*</span>    
            </label>    
            <input type="text" name="pays" id="pays" />    
        </li>    
  <li>    
            <label>Quel est le titre de votre manga préféré aux éditions Ki-oon ?    
            <span class="small">*</span>    
            </label>    
            <input type="text" name="titre1" id="titre1" />    
        </li>    
        <li>    
            <label>Quel est le titre de votre manga préféré toutes maisons d'édition confondues ?    
            <span class="small">*</span>    
            </label>    
            <input type="text" name="titre2" id="titre2" />    
        </li>    
  <li>    
            <label>Quel type de manga préférez-vous ?    
            <span class="small"></span>    
            </label>    
            <input type="radio" name="type" id="type" value="Seinen" />Seinen    
            <input type="radio" name="type" id="type" value="Shôjo" />Shôjo    
            <input type="radio" name="type" id="type" value="Shonen" />Shonen    
            <input type="radio" name="type" id="type" value="Yaoi" />Yaoi    
            <input type="radio" name="type" id="type" value="Yuri" />Yuri    
        </li>    
  <li>    
            <label>Quel est votre auteur favori ?    
            <span class="small">*</span>    
            </label>    
            <input type="text" name="auteur" id="auteur" />    
        </li>    
  <li>    
            <label>Souhaiterez-vous voir plus de choix de mangas de type:    
            <span class="small"></span>    
            </label>    
            <input type="radio" name="choix" id="choix" value="Seinen" />Seinen    
            <input type="radio" name="choix" id="choix" value="Shôjo" />Shôjo    
            <input type="radio" name="choix" id="choix" value="Shonen" />Shonen    
            <input type="radio" name="choix" id="choix" value="Yaoi" />Yaoi    
            <input type="radio" name="choix" id="choix" value="Yuri" />Yuri    
            <input type="radio" name="choix" id="choix" value="C'est bien actuellement" />C'est bien actuellement    
        </li>    
  <li>    
            <label>Trouvez vous toutes les informations souhaitées sur notre site ?    
            <span class="small">*</span>    
            </label>    
            <input type="radio" name="info" id="info" value="Oui" />Oui    
            <input type="radio" name="info" id="info" value="Non" />Non    
        </li>    
        <li>    
            <label>Laissez votre commentaire ici :<br/>     
            </label>    
            <textarea value="texte" wrap="VIRTUAL" name="texte"></textarea><br>    
            <button name="submit" type="submit">Envoyer</button>    
        </li>     

  </div>    

  </form>    

  </div>    
            
            
   <div class="footer"></div>    

            
 </div>    
            
     <?php include("footer.php"); ?>      
          
</div>    

</body>    
</html>   


Et ma page PHP:

<?php    

//definition des entêtes    

$entetes = 'From: '.$_POST['courriel']."\r\n";    
$entetes .= 'Content-Type: text/plain; charset=utf-8'."\r\n";    
//Content-type: text/html; charset=iso-8859-1\r\n";    
$entetes .= 'Content-Transfer-Encoding: 8bit';    

//sujet    
$sujet = "Question/demande d'un internaute" ;     

//création du contenu du mail    
$texte = 'Age : '.$_POST['age']."\n";    
$texte .= 'Sexe : '.$_POST['sexe']."\n";    
$texte .= 'Pays : '.$_POST['pays']."\n";    
$texte .= 'Titre1 : '.$_POST['titre1']."\n";    
$texte .= 'Titre2 : '.$_POST['titre2']."\n";    
$texte .= 'Type : '.$_POST['type']."\n";    
$texte .= 'Auteur : '.$_POST['auteur']."\n";    
$texte .= 'Choix : '.$_POST['choix']."\n";    
$texte .= 'Info : '.$_POST['info']."\n";    
$texte .= 'Message :'."\n";    
$texte .= stripslashes($_POST['texte']) ;    


$email ="e-mail@caché.com";    


$envoi_mail = mail($email, $sujet, $texte, $entetes);    


if (!$envoi_mail)    
{ header('Location: envoi.php');  }    

else    
{ header('Location: envoi_ok.php'); }    

$age = $_POST['age'];    
$sexe = $_POST['sexe'];    
$pays = $_POST['pays'];    
$titre1 = $_POST['titre1'];    
$titre2 = $_POST['titre2'];    
$type = $_POST['type'];    
$auteur = $_POST['auteur'];    
$choix = $_POST['choix'];    
$info = $_POST['info'];    
$message = $_POST['texte'];    

  $today = date("m.d.y, H:m");           
  $info = $today."\t".$age."\t".$sexe."\t".$pays."\t".$titre1."\t".$titre2."\t".$type."\t".$auteur."\t".$choix."\t".$info."\t".$message."\r\n";    



  $info = mb_convert_encoding( $info, 'ISO-8859-1', auto);     


  $fp = fopen ('file.csv', "a+");    
  fputs ($fp, $info);      
  fclose ($fp);    



?>    


Les doctypes ont été modifiés. Mais je ne pense pas que c'est le problème.
En théorie ce code devrait fonctionner. J'ai en tout cas les résultats quand j'ouvre mon fichier .csv dans Excel, mais tout dans la seul et même colonne A.

D'avance, je vous remercie pour votre aide et participation.

J'ai mis les balises < code > et < /code > mais ...


Edit: Identifiants de connexion supprimés.
A voir également:

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
14 août 2012 à 16:05
Le problème vient bien de la structure de ton CSV, (comma separate value) et non avec des tabulations sinon c'est un fichier texte qu'il faut faire et non un CSV.

Pour faire un CSV facilement et pas s'embêter avec ce type de problème de formatage, utilises la fonction fputcsv : https://www.php.net/manual/fr/function.fputcsv.php

A+
0
GW3D Messages postés 9 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 15 novembre 2017
19 août 2012 à 20:34
Bonsoir Zep3k!Gno.

J'ai suivi ton lien. J'ai essayé plein de tentatives différentes, et ce même avec des codes copié collé. Je n'y comprend rien. Jamais ça n'a été dans différentes colonnes. Même avec l'essaie basic de ton lien.

C'est toujours dans la colonne A.

Le "split", il le déclare comme une erreur.

Malheureusement je n'ai plus le temps de chercher plus amplement pour le moment ...

Serait possible que le problème vient du fichier .csv même ?

Désolé du retard, je n'avais pas vu ta réponse. Je suis tellement habitué à ne pas avoir de réponse malgré le fait d'être précis.
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 20/08/2012 à 13:03
Bonjour,

Si votre fichier Excell est sauvegardé au format XML, il y a un moyen bien plus simple expliqué ici:
https://html5.immo-scope.com/article/php_publiPostageDocumentWord

C'est pour Word, mais à la fin de l'article, c'est expliqué comment adapter pour Excell. Je l'urtilise pour générer par exemple des appels de charges pour copropriété.

A+

un +1 sur mes commentaires - si vous avez apprécié - c'est gentil, merci.
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
21 août 2012 à 12:37
@GW3D :
as-tu pensé à mettre les paramètres optionnels ?

Un court exemple (qui fonctionne):
<?php
    $aTab   = array('col1', 'col2', 'col3', 'col4', 'col5');
    $r      = fopen('./my_csv.csv', 'w+');
    fputcsv($r, $aTab, ';', '"');
    fclose($r);
?>
 
0