php如何匯出excel(PHPExcel)

在我們開發網站的時候,匯出excel的功能相信很多時候都會被要求到
php在匯出excel的部分,目前習慣使用PHPExcel套件處理

一開始很簡單當然是先呼叫套件
 


$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);


接下來開始寫內容先處理好各欄位 (記得嗎  excel中是A B C.......)

$excel_field[$i] = $ABC[(floor($i/26)-1)].$ABC[$i%26];


接下來寫入儲存格中的值  是使用這種寫法
G1為指定的儲存格位置寫入什麼文字


// 指定位置寫入值
$objPHPExcel->getActiveSheet()->setCellValue("G1","本活動報名項目如下所示");

// 設定欄寬
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);

// 畫框線
$objPHPExcel->getActiveSheet()->getStyle("A7:U100")->getBorders()->getAllborders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

// 設定背景色
$objPHPExcel->getActiveSheet()->getStyle("A7:U7")->getFill()->applyFromArray(array("type" => PHPExcel_Style_Fill::FILL_SOLID,"startcolor" => array("rgb" =>"FFFFAA")));

// 設定文字顏色
$objPHPExcel->getActiveSheet()->getStyle("A4:U4")->getFont()->getColor()->setARGB("AE0000");



最後我們把他們輸出成檔案下載

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save("temp_export_file/".$time_str.".xls");


$time_str=time();
$file_name = "".$time_str.".xls";
$file_path = "temp_export_file/".$time_str.".xls";
$file_size = filesize($file_path);

header("Content-Type:text/html;charset=utf-8");
header ("Content-type:".filetype($file_path)."" );
header ("Content-Disposition: attachment; filename=".$time_str.".xls");
readfile($file_path);

exit;