Brave publisher PUBLISHER
Développeur web Front-End dans l'Oise - Gary Deshayes

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

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 5 | Retourner une image via une route d'un controller

Symfony

Crée le : mercredi 1 septembre 2021

VueJS 3, ExpressJS 4.17 | Upload et redimensionnement d'une image

Javascript Framework JS

Crée le : samedi 28 novembre 2020

Symfony Event Subscriber | Restriction d'une plage ip avec un Event Subscriber

Symfony

Crée le : samedi 14 novembre 2020

Angular, ExpressJS | Authentification JWT avec Angular 10 et ExpressJS 4 (MySQL)

Javascript SQL Framework JS

Crée le : dimanche 20 septembre 2020

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

Symfony

Crée le : jeudi 6 août 2020

Symfony FormType ChoiceType | Radio button valeur par défaut dans un FormType

Symfony

Crée le : dimanche 26 juillet 2020

Doctrine, Symfony | Différence entre deux dates sous MySQL (Jour, mois, années...)

Symfony SQL

Crée le : jeudi 18 juin 2020

JavaScript, jQuery et Regex | Sécuriser un mot de passe en temps réel avec JS

Javascript jQuery

Crée le : lundi 23 mars 2020

Symfony, Doctrine | Récupérer les anciennes données d'un formulaire FormType

Symfony

Crée le : vendredi 14 février 2020

jQuery, Webpack et Symfony | Appeler jQuery dans vos fichiers twig

Symfony Bugs

Crée le : dimanche 26 janvier 2020