Symfony, Excel, CSV | Générer un fichier CSV pour Excel avec Symfony

Développeur web Front-End dans l'Oise - Gary Deshayes <--Translation

Crée le : jeudi 6 août 2020


C'est une pratique courante sur les applications web d'extraire des données via CSV, que ce soit pour récupérer des statistiques ou bien faire des sauvegardes de données, je vais vous montrer comment ceci est réalisable facilement avec Symfony via un Controller.

Comment générer le fichier CSV avec un Controller de Symfony

Pour générer le fichier, il faut le construire comme dans l'exemple suivant, en définissant les colonnes du fichiers CSV avec des points virgules (;) et des sauts de ligne (\n).

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class HomeController extends AbstractController
{
    /**
     * @Route("/home", name="home")
     */
    public function home()
    {
	//Nom des colonnes en première lignes
    // le \n à la fin permets de faire un saut de ligne, super important en CSV
    // le point virgule sépare les données en colonnes
	$myVariableCSV = "Nom; Prenom; Age;\n";
	//Ajout de données (avec le . devant pour ajouter les données à la variable existante)
	$myVariableCSV .= "John; Doe; 26;\n";
    //Si l'on souhaite ajouter un espace
    $myVariableCSV .= " ; ; ; \n";
    //Autre donnée
	$myVariableCSV .= "Chuck; Norris; 80;\n";
	//On donne la variable en string à la response, nous définissons le code HTTP à 200
    return new Response(
           $myVariableCSV,
           200,
           [
		 //Définit le contenu de la requête en tant que fichier Excel
             'Content-Type' => 'application/vnd.ms-excel',
		 //On indique que le fichier sera en attachment donc ouverture de boite de téléchargement ainsi que le nom du fichier
             "Content-disposition" => "attachment; filename=Tutoriel.csv"
          ]
    );
}

Récupération du fichier CSV

Lors de l'accès à la route /home comme sur l'exemple, une fenêtre d'enregistrement de fichier vous permettra de récupérer le fichier.

Vous n'avez plus qu'à ouvrir votre fichier CSV avec Excel ou autre logiciel.

Aperçu du fichier dans Excel

Symfony, Excel, CSV | Générer un fichier CSV avec Symfony

Vous pouvez voir que nos colonnes sont bien définies, que nous avons les données souhaitées au bon endroit avec un saut de ligne entre les deux.

Vous savez désormais comment générer un fichier CSV avec Symfony.

 

Merci d'avoir lu, n'hésitez pas à partager !

Articles récents :
Symfony

Crée le : lundi 1 novembre 2021

Javascript Framework JS

Crée le : dimanche 31 octobre 2021

Symfony

Crée le : mercredi 1 septembre 2021

Javascript Framework JS

Crée le : samedi 28 novembre 2020

Javascript SQL Framework JS

Crée le : dimanche 20 septembre 2020

Symfony Bugs

Crée le : dimanche 26 janvier 2020