Je génère un fichier Excel avec l'extension .xlsx
Voici mon code simple à générer
$file = "test.xlsx";
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename='.$file);
$content = "Col1\tCol2\tCol3\t\n";
$content .= "test1\ttest1\ttest3\t\n";
$content .= "testtest1\ttesttest2\ttesttest3\t\n";
echo $content;
Mais je reçois une erreur lorsque j'ouvre le fichier généré.
Excel cannot open the file 'test.xlsx' because the file format or file extension is not valid.
Je cherchais le bon code pendant 1 heure, mais je n'ai pas trouvé la solution.
Merci d'avance.
Vous ne pourrez pas en créer un seul sans une bibliothèque. Ayez une lecture de ce PHPExcel Github qui devrait vous diriger dans la bonne direction.
EDIT: PHPExcel est DEPRECATED, vous pouvez utiliser son success PHPSpreadsheet sur GitHub. PhpSpreadsheet
Le contenu n'est pas un contenu xlsx valide. Essayez d’envoyer votre contenu sous forme de contenu séparé par des virgules et utilisez xls pour l’ouvrir.
À titre de suggestion, si vous pouvez modifier votre contenu, vous pouvez peut-être essayer?
$file = "test.csv";
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename='.$file);
$content = "Col1,Col2,Col3\n";
$content .= "test1,test1,test3\n";
$content .= "testtest,ttesttest2,testtest3\n";
echo $content;
Le fichier n’est peut-être pas compatible avec la version d’Excel utilisée . Essayez de modifier votre extension de fichier 'xlsx' en 'xls et vérifiez si cela fonctionne ou non . Si cela fonctionne, alors cette extension de fichier (. xlsx) n'est pas compatible avec la version d'Excel que vous avez utilisée.