PHP_XLSXWriter
第二連結 : 避免最後倉庫丟失
include BASE_PATH . "XlsxWriter.php";
$headerRow = [];
$file = $filename;
$file = str_replace('.xls', '.xlsx', $file);
# 要使用方案2
$path = '../api/data/resources/xlsx/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
$path = $path . $filename;
} else {
$path = $path . $filename;
}
$writer = new \XLSXWriter();
# 風格一
$styles1 = array(
'font' => 'Arial',
'font-size' => 12,
'border' => 'left,top,bottom'
);
# 配置標題
foreach ($data[0] as $key => $value) {
$headerRow[$value] = '@';
}
unset($data[0]);
$writer->writeSheetHeader('Sheet1', $headerRow, [
'halign' => 'center',
'font-size' => 14,
'border' => 'left,top,bottom',
'widths' => [40, 20, 20, 25, 25],
]);
foreach ($data as $key1 => $row) {
$writer->writeSheetRow('Sheet1', $row, $styles1);
}
# 方案一
header('content-disposition:attachment;filename=' . $file); //告訴瀏覽器通過何種方式處理檔案
$writer->writeToStdOut();
exit;
# 方案二 # 這個是 先產實體文件 , 再刪除
// $writer->writeToFile($path);
// header('content-disposition:attachment;filename=' . $file); //告訴瀏覽器通過何種方式處理檔案
// header('content-length:' . filesize($path)); //下載檔案的大小
// readfile($path);
// unlink($path);
// exit;