Exporter des données MySQL vers Excel en PHP

Exporter des données excel vers PHP MySQL

Vous avez besoin d’exporter des données à partir d’une base de données, au format Excel à partir de MySQL . La base de données ou les tables de la base de données MySQL peuvent être exportées dans différents formats de fichiers, tels que CSV, XML, SQL, Excel, etc., en utilisant le client PHP, phpMyAdmin. Il est également possible d’exporter des données MySQL à l’aide d’un script PHP au lieu d’exporter les données manuellement. Dans ce tuto voyons comment créer un script PHP pour accomplir cette petite mission. Ce tutoriel vous montre comment exporter des données MySQL à l’aide d’un script PHP

Conditions préalables

Effectuez les tâches suivantes avant d’exporter des données MySQL. Vous devez ouvrir le client MySQL dans le terminal ou le client phpMyAdmin dans le navigateur pour effectuer les tâches suivantes.

Une table avec cinq enregistrements sera créée dans une base de données après l’exécution des commandes SQL suivantes.

1. Créez une base de données MySQL

Exécutez la commande SQL suivante pour créer une base de données nommée société.

CREATE database `clients`;

B. Créer une table

Exécutez la commande SQL suivante pour créer une table nommée items.

CREATE TABLE `clients` (
`id` int(11) AUTO_INCREMENT PRIMARY KEY,
`nom` varchar(100) NOT NULL,
`prenom` varchar(100) NOT NULL,
`adresse` varchar(50) NOT NULL,
`metier` double(5,2) NOT NULL
) ENGINE=InnoDB;

C. Insérez des données dans le tableau

INSERT INTO `clients` (`nom`,`prenom`,`adresse`,`metier`) VALUES
('Jean', 'Paul','5 rue des champs 75000 Paris', 'CEO'),
('Antoine', 'Dupont','82 rue feuillat 69008 Lyon', 'Ingénieur en informatique);

Si vous ouvrez la table des éléments à partir de phpMyAdmin, le contenu de la table des éléments ressemblera à l’image suivante.

Exporter les données MySQL vers un fichier Excel

Ici, vous devez créer un fichier PHP nommé exporter.php pour créer le script suivant, qui lit les enregistrements dans la table des éléments et crée un fichier Excel avec le contenu de la table des éléments.

Dans Ce script, un objet de connexion à la base de données est déclaré pour récupérer les données de la table de base de données.

Ensuite, une requête de sélection est définie pour lire tous les enregistrements de la table des éléments qui sont stockés dans une variable nommée $ items. Cette variable est utilisée pour afficher le contenu du tableau sous forme de tableau et créer un fichier Excel avec le contenu du tableau en fonction de l’action de l’utilisateur. Lorsque l’utilisateur clique sur un bouton qui sera créé ultérieurement par le document HTML pour exporter les données du tableau au format Excel, la fonction isset () de ce script renverra «true». Pour créer le fichier Excel, un nom de fichier est défini avec l’extension xsl. Les informations d’en-tête requises sont transmises à l’aide de la fonction header (). Ensuite, la variable $ head est utilisée pour définir l’en-tête des colonnes dans le fichier Excel. Les valeurs de clé de la variable $ items sont utilisées comme valeurs d’en-tête. Ensuite, la fonction implode () est utilisée pour écrire les enregistrements de la table des éléments dans le fichier Excel.

exporter.php

<?php
query($query);
$items = array();

// Stocker les enregistrements de table dans un tableau

while( $row = $result->fetch_assoc() ) {
$items[] = $row;
}

// Vérifiez que le bouton d'exportation est enfoncé ou non
if(isset($_POST["export"])) {
//Define the filename with current date
$fileName = "itemdata-".date('d-m-Y').".xls";

// Définir les informations d'en-tête pour exporter les données au format Excel

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename='.$fileName);

// Défini la variable sur false pour l'en-tête
$heading = false;

// Ajouter les données de la table MySQL au fichier Excel
if(!empty($items)) {
foreach($items as $item) {
if(!$heading) {
echo implode("\t", array_keys($item)) . "\n";
$heading = true;
}
echo implode("\t", array_values($item)) . "\n";
}
}
exit();
}

?>

Créez un autre fichier PHP nommé index.php avec le code suivant pour afficher les enregistrements dans la table des éléments dans le navigateur avec le bouton Exporter vers Excel. Ici, le fichier exporter.php est inclus au début du script pour établir la connexion à la base de données, lire les données de la table et créer un fichier Excel avec les données de la table lorsque l’utilisateur appuie sur le bouton. Les données de la table seront affichées au format tabulaire en utilisant bootstrap et jQuery.

<?php
include("exporter.php");
?>

<!DOCTYPE html>
<html>
<head>
<title>Exporter des données MySQL vers Excel en utilisant PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet"
 href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet"
 href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
<script
 src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script
 src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>

<body>

<div class="container">
<center><br/><br/><h2
 style='color:green'>Informations sur la table des éléments</h2></center>
<div class="col-sm-12">
<div>
<form action="#" method="post">
<button type="submit" id="export" name="export"
 value="Export to excel" class="btn btn-success">Export To Excel</button>
</form>
</div>
</div>
<br/>
<table id="" class="table table-striped table-bordered">
<tr>
<th>ID</th>
<th>Name</th>
<th>Type</th>
<th>Brand</th>
<th>Price</th>
</tr>
<tbody>
<?php foreach($items as $item) { ?>
<tr>
<td><?php echo $item ['id']; ?></td>
<td><?php echo $item ['name']; ?></td>
<td><?php echo $item ['type']; ?></td>
<td><?php echo $item ['brand']; ?></td>
<td>$<?php echo $item ['price']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>

</body>
</html>