Bonjour,

dans une WebApp j'utilise Spreadsheet pour générer un fichier Excel XLSX intégrant les résultats de requêtes MySQL. Tout fonctionne bien mais je n'arrive pas à formater une colonne Date... Dans Excel toutes les cellules de ma colonne B commencent par ' (exemple : '2019-10-29) J'ai essayé différentes choses avec NumberFormat sans succès.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
try {
    $req = $bdd->query($sql);
    $aResultats = $req->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die('Erreur : '.$e->getMessage());
}
 
$filename_xlsx = "export_".date('Y-m-d_H-i-s').".xlsx";
 
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$objSpreadsheet = new Spreadsheet();
$objSpreadsheet->setActiveSheetIndex(0);
$objSheet = $objSpreadsheet->getActiveSheet();
$objSheet->fromArray($aResultats, NULL, 'A1');
 
date_default_timezone_set('Europe/Paris');
$objSheet->getStyle('B1')
        ->getNumberFormat()
        //->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);
        //->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD);
            ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
 
$objWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($objSpreadsheet, 'Xlsx');
$objWriter->save($filename_xlsx);
La cellule B1 ne change pas des autres...
Merci pour votre aide !