Comment exporter une section de page HTML/PHP en Excel avec JavaScript ?

Par défaut

Bonjour, Il est parfois important de vouloir exporter le contenu de vos pages dans un fichier Excel. Pour cela, la section à exporter doit être un tableau pour permettre à Excel de reconnaitre le type de donnée exportée.

  1. Vous devez créer un lien ou un bouton sur lequel vous cliqueriez pour exporter votre tableau en Excel:
<a href="javascript:void(0)" onClick="exporterEnExcel('divAexporter')">Exporter en Excel</a>
Lien

EXPLICATION:

Dans le code ci-dessus, j’ai créé un lien en HTML dans lequel j’ai ajouté un évènement de clic onClick= »exporterEnExcel(‘divAexporter’). Cet évènement exécutera ma fonction Javascript appelée exporterEnExcel() qui me permettra d’exporter mon tableau en Excel. Dans la fonction exporterEnExcel() nous avons un paramètre:  divAexporter , qui représente l’ID de la section ou tableau à exporter.

2. Création de mon tableau HTML à exporter:

<div id="divAexporter">
<table width="100%" border="1">
<tbody>
<tr>
<th scope="col">N°</th>
<th scope="col">NOM</th>
<th scope="col">PRENOMS</th>
<th scope="col">SEXE</th>
<th scope="col">AGE</th>
</tr>
<tr>
<th scope="row">1</th>
<td>Gueu</td>
<td>Pacôme</td>
<td>M</td>
<td>28</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Rush</td>
<td>Ethan</td>
<td>M</td>
<td>8</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Liam</td>
<td>Nathan</td>
<td>M</td>
<td>5</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Gueu</td>
<td>Kethian</td>
<td>F</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
tableau à exporter

3. Création de la fonction JavaScript qui nous servira à exporter le tableau HTML

<script>
function exporterEnExcel(param) {
if(confirm("Êtes vous sûr de vouloir exporter ces données, l'exportation prendre unpeu de temps selon les données qui existent")){
var contents = document.getElementById(param).innerHTML;
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(contents));
}else{
alert("Exportation annulée");
return false;
}
}
</script>
Fonction Javascript

CODE COMPLET:

<a href="javascript:void(0)" onClick="exporterEnExcel('divAexporter')">Exporter mon tableau en excel</a>
<div id="divAexporter">
<table width="100%" border="1">
<tbody>
<tr>
<th scope="col">N°</th>
<th scope="col">NOM</th>
<th scope="col">PRENOMS</th>
<th scope="col">SEXE</th>
<th scope="col">AGE</th>
</tr>
<tr>
<th scope="row">1</th>
<td>Gueu</td>
<td>Pacôme</td>
<td>M</td>
<td>28</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Rush</td>
<td>Ethan</td>
<td>M</td>
<td>8</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Liam</td>
<td>Nathan</td>
<td>M</td>
<td>5</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Gueu</td>
<td>Kethian</td>
<td>F</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
<script>
function exporterEnExcel(param) {
if(confirm("Êtes vous sûr de vouloir exporter ces données, l'exportation prendre unpeu de temps selon les données qui existent")){
var contents = document.getElementById(param).innerHTML;
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(contents));
}else{
alert("Exportation annulée");
return false;
}
}
</script>
Code complet