拡張子が.xlsxのExcelファイルを生成しています
生成する簡単なコードを次に示します
$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;
しかし、生成されたファイルを開くとエラーが発生します。
Excel cannot open the file 'test.xlsx' because the file format or file extension is not valid.
適切なコードを1時間検索していますが、解決策が見つかりませんでした。
前もって感謝します。
ライブラリなしで作成することはできません。これを読んでください PHPExcel Github これはあなたを正しい方向に向けるはずです。
EDIT:PHPExcelは非推奨です。GitHubでも後続のPHPSpreadsheetを使用できます。 PhpSpreadsheet
コンテンツは有効なxlsxコンテンツではありません。コンテンツをコンマ区切り値コンテンツとして送信し、xlsを使用してそれを開きます
提案として、もしあなたがあなたのコンテンツを変更できるなら、あなたはこれを試すことができますか?
$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;
ファイルが使用されているExcelのバージョンと互換性がない可能性があります。ファイル拡張子「xlsx」を「xls」に変更してみて、機能するかどうかを確認してください。動作している場合、このファイル拡張子(.xlsx)は使用したExcelのバージョンと互換性がありません。