Dans ce blog, nous apprendrons comment exporter des données PHP vers un fichier .xls étape par étape. À l’aide d’un simple script PHP, vous pouvez exporter des données vers Excel et les télécharger dans un fichier .xls.
ÉTAPE 1 : Créer un tableau pour stocker les données
J’ai créé un tableau ($customers_data) pour stocker les détails des clients. Vous pouvez créer votre propre tableau selon vos besoins :
$customers_data = array( array( 'customers_id' => '1', 'customers_firstname' => 'Chris', 'customers_lastname' => 'Cavagin', 'customers_email' => 'chriscavagin@gmail.com', 'customers_telephone' => '9911223388' ), array( 'customers_id' => '2', 'customers_firstname' => 'Richard', 'customers_lastname' => 'Simmons', 'customers_email' => 'rsimmons@media.com', ' customers_telephone' => '9911224455' ), array( 'customers_id' => '3', 'customers_firstname' => 'Steve', 'customers_lastname' => 'Beaven', 'customers_email' => 'ateavebeaven@gmail.com' , 'customers_telephone' => '8855223388' ), array( 'customers_id' => '4', 'customers_firstname' => 'Howard', 'customers_lastname' => 'Rawson', 'customers_email' => 'howardraw@gmail. com', 'customers_telephone' => '9911334488' ), array( 'customers_id' => '5', 'customers_firstname' => 'Rachel', 'customers_lastname' => 'Dyson', 'customers_email' => 'racheldyson@ gmail.com', 'customers_telephone' => '9912345388' ) );
ÉTAPE 2 : Créez une fonction pour filtrer les données :
Cette fonction est utilisée pour détecter les guillemets doubles et échapper toute valeur qui les contient. Sans cela, un nombre impair de guillemets dans une chaîne peut semer la confusion dans Excel.
// Fonction de filtrage des données client filterCustomerData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"' ; }
ÉTAPE 3 : Définissez le nom du fichier et l’en-tête du contenu à télécharger :
La variable $file_name� est utilisée pour contenir le nom du fichier et définit également l’en-tête du contenu à télécharger.
// Nom de fichier et en-tête de contenu à télécharger $file_name = "customers_data.xls" ; header("Content-Disposition : pièce jointe ; filename=\"$file_name\""); header("Content-Type : application/vnd.ms-excel");
ÉTAPE 4 : Définissez une boucle sur chaque ligne dans� $customers_data
//Pour définir le nom de la colonne dans la première ligne. $column_names = false ; // exécute une boucle sur chaque ligne dans $customers_data foreach($customers_data as $row) { if(!$column_names) { echo implode("\t", array_keys($row)) . "\n" ; $column_names = true ; } // La fonction array_walk() exécute chaque élément du tableau dans une fonction définie par l'utilisateur. array_walk($row, 'filterCustomerData'); echo implode("\t", array_values($row)) . "\n" ; } sortir;
1. Définissez une variable $column_names qui est utilisée pour imprimer le nom de la colonne dans la première ligne d’Excel. 2. Exécutez une boucle dans chaque ligne et utilisez la fonction array_walk() pour exécuter chaque ligne dans une fonction définie par l’utilisateur.
ÉTAPE 5 : Exécutez le fichier de script dans votre environnement :
Si tout se passe bien, le nom du fichier sera nommé “customers_data.xls” téléchargé et enregistré sur votre ordinateur. Vous pouvez ouvrir ce fichier dans Excel qui ressemble à ceci :
Cliquez ici pour télécharger le code complet.