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:
[pastacode lang= »markup » manual= »%3Ca%20href%3D%22javascript%3Avoid(0)%22%20onClick%3D%22exporterEnExcel(‘divAexporter’)%22%3EExporter%20en%20Excel%3C%2Fa%3E » message= »Lien  » highlight= » » provider= »manual »/]

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:

[pastacode lang= »markup » manual= »%3Cdiv%20id%3D%22divAexporter%22%3E%0A%09%3Ctable%20width%3D%22100%25%22%20border%3D%221%22%3E%0A%09%20%20%3Ctbody%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EN%C2%B0%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3ENOM%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EPRENOMS%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3ESEXE%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EAGE%3C%2Fth%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E1%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3EGueu%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EPac%C3%B4me%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E28%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E2%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3ERush%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EEthan%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E8%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E3%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3ELiam%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3ENathan%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E5%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E4%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3EGueu%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EKethian%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EF%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E1%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%20%20%3C%2Ftbody%3E%0A%09%3C%2Ftable%3E%0A%3C%2Fdiv%3E%0A » message= »tableau à exporter » highlight= » » provider= »manual »/]

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

[pastacode lang= »javascript » manual= »%3Cscript%3E%0A%20function%20exporterEnExcel(param)%20%7B%0A%09%20if(confirm(%22%C3%8Ates%20vous%20s%C3%BBr%20de%20vouloir%20exporter%20ces%20donn%C3%A9es%2C%20l’exportation%20prendre%20unpeu%20de%20temps%20selon%20les%20donn%C3%A9es%20qui%20existent%22))%7B%0A%09%09%20var%20contents%20%3D%20document.getElementById(param).innerHTML%3B%0A%20%20%20%20%09%20window.open(‘data%3Aapplication%2Fvnd.ms-excel%2C’%20%2B%20encodeURIComponent(contents))%3B%0A%09%20%7Delse%7B%0A%09%09%20alert(%22Exportation%20annul%C3%A9e%22)%3B%0A%09%09%20return%20false%3B%0A%09%20%7D%0A%7D%0A%20%3C%2Fscript%3E » message= »Fonction Javascript » highlight= » » provider= »manual »/]

CODE COMPLET:

[pastacode lang= »markup » manual= »%3Ca%20href%3D%22javascript%3Avoid(0)%22%20onClick%3D%22exporterEnExcel(‘divAexporter’)%22%3EExporter%20mon%20tableau%20en%20excel%3C%2Fa%3E%0A%3Cdiv%20id%3D%22divAexporter%22%3E%0A%09%3Ctable%20width%3D%22100%25%22%20border%3D%221%22%3E%0A%09%20%20%3Ctbody%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EN%C2%B0%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3ENOM%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EPRENOMS%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3ESEXE%3C%2Fth%3E%0A%09%09%20%20%3Cth%20scope%3D%22col%22%3EAGE%3C%2Fth%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E1%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3EGueu%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EPac%C3%B4me%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E28%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E2%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3ERush%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EEthan%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E8%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E3%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3ELiam%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3ENathan%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EM%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E5%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%09%3Ctr%3E%0A%09%09%20%20%3Cth%20scope%3D%22row%22%3E4%3C%2Fth%3E%0A%09%09%20%20%3Ctd%3EGueu%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EKethian%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3EF%3C%2Ftd%3E%0A%09%09%20%20%3Ctd%3E1%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%0A%09%20%20%3C%2Ftbody%3E%0A%09%3C%2Ftable%3E%0A%3C%2Fdiv%3E%0A%3Cscript%3E%0A%20function%20exporterEnExcel(param)%20%7B%0A%09%20if(confirm(%22%C3%8Ates%20vous%20s%C3%BBr%20de%20vouloir%20exporter%20ces%20donn%C3%A9es%2C%20l’exportation%20prendre%20unpeu%20de%20temps%20selon%20les%20donn%C3%A9es%20qui%20existent%22))%7B%0A%09%09%20var%20contents%20%3D%20document.getElementById(param).innerHTML%3B%0A%20%20%20%20%09%20window.open(‘data%3Aapplication%2Fvnd.ms-excel%2C’%20%2B%20encodeURIComponent(contents))%3B%0A%09%20%7Delse%7B%0A%09%09%20alert(%22Exportation%20annul%C3%A9e%22)%3B%0A%09%09%20return%20false%3B%0A%09%20%7D%0A%7D%0A%20%3C%2Fscript%3E%0A » message= »Code complet » highlight= » » provider= »manual »/]