phpでExcelファイル(xlsx)のダウンロード

概要

PHPでExcelファイルをダウンロードするコードを調べてみましがが、xlsファイルのダウンロードのサンプルで動作するのはあったのですが、Excel2007以降の「xlsx」ファイルだとネットであるサンプルコードでは動作しないのがあったので、少し手直ししました

xlsx形式のExcelをダウンロードするサンプル

サンプルですが、以下のようなコードです

$download_path = '/download/sample.xlsx’; で、ファイルのパスを指定
$filename=basename($download_path); でファイルのファイル名を取得しています
$file_size = filesize($download_path); でファイルのファイルサイズを取得しています

その後のheader関数を使用してダウンロード用のHTTPヘッダを設定して、Excelファイルを出力してダウンロードさせています

$download_path = '/download/sample.xlsx';
$filename=basename($download_path);
$file_size = filesize($download_path);

header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Length: {$file_size}");
header("Content-Disposition: attachment; filename=$filename");
ob_end_clean();
readfile($download_path); 	// ファイルを出力する前に、バッファの内容をクリア(ファイルの破損防止)
exit;

上記のサンプルでExcelファイルがダウンロードされるかと思います

 

スポンサーリンク