Cellules excel export
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je réalise un export de ma base de données vers excel tout ça en PHP.
Le problème que je rencontre est que les champs sont tous dans la même colonne A1 (voir screen ci-dessous)
Je veux que chaque champs sois dans sa cellules (voir screen ci dessous)
Voici mon code d’exportation en PHP:
<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/src/config.php'); require_once($_SERVER['DOCUMENT_ROOT'] . '/src/functions/functions.php'); require_once($_SERVER['DOCUMENT_ROOT'] . '/src/database/database.php'); function filterData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } // filename for download $filename = "export_data-" . date('Ymd') . ".csv"; //Columns name $fields = array('ID', 'N° Ordre', 'Date', 'Nom', 'Prénoms', 'Adresse', 'Code Postal', 'Ville', 'Adresse mail', 'Montant', 'Methode', 'Banque', 'N° de chèque', 'Mode d\'envoie', "Date d'impression", 'Date de sauvegarde'); $excelData = implode(",", array_values($fields)) . "\n"; $query = $pdo->query("SELECT * FROM informations ORDER BY id DESC"); if ($query->rowCount() > 0) { while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $rowData = array( $row['id'], $row['ordre'], $row['date'], $row['nom'], $row['prenom'], $row['adresse'], $row['codepostal'], $row['ville'], $row['adressemail'], $row['montant'], $row['methode'], $row['banque'], $row['ncheque'], $row['modeenvoie'], $row['dateimpression'], $row['datesauvegarde'] ); // Échapper les caractères spéciaux dans chaque valeur array_walk($rowData, 'filterData'); // Ajouter les données échappées à la chaîne Excel $excelData .= implode(",", array_values($rowData)) . "\n"; } } else { $excelData .= 'No records found...' . "\n"; } // Headers for download header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: text/csv; charset=utf-8"); // Output the BOM (Byte Order Mark) to ensure Excel correctly interprets UTF-8 echo "\xEF\xBB\xBF"; // Output the Excel data echo mb_convert_encoding($excelData, 'UTF-8', 'UTF-8'); // Exit to prevent further output exit(); ?>
Merci d'avance !
- Cellules excel export
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Verrouiller cellules excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
1 réponse
Bonjour,
En aucun cas tu ne fais un export "excel" .... mais un export CSV
Dans ton cas, tu as utilisé la virgule comme séparateur.
Tu peux éventuellement la remplacer par un point-virgule si tu veux que ton excel l'ouvre directement en séparant les colonnes...
Sinon, dans excel, tu peux regarder comment fonctionne le menu données/convertir ...
Et enfin, tu peux sinon modifier ton code pour créer un vrai fichier excel en utilisant la librairie phpspredsheet par exemple.