簡單粗暴直接上代碼
/**
* @param $res //二維數組(要保存的數據,$res[0]為excel表頭)
* @param null $FileName //文件名
* @param null $width //每一列的寬度,鍵名與數據鍵名相同
* @param string $rgb //第一行背景顏色(16進制)
* @return mixed
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Writer_Exception
*/
function Excel_Create($res,$FileName =null, $width=null,$rgb=null)
{
require_once 'Classes/PHPExcel.php';
//
ob_end_clean();
// 實例化excel類
$objPHPExcel = new \PHPExcel();
// 操作第一個工作表
$objPHPExcel->setActiveSheetIndex(0);
// 設置sheet名
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');
// 列名表頭文字加粗
$objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setBold(true);
// 列表頭文字居中
$objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getAlignment()
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//獲取表頭
$keys = array_keys($res[0]);
// 列名賦值
$col = 'A';
foreach ($keys as $key) {
// 列名賦值
$objPHPExcel->getActiveSheet()->setCellValue($col . '1', $res[0][$key]);
if($rgb!=null){
// 設置第一行顏色
$objPHPExcel->getActiveSheet()->getStyle($col . '1')->getFill()->applyFromArray(array(
'type' => \PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array(
'rgb' => $rgb
)
));
}
//設置表格寬度
if($width!=null){
$objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth($width[$key]);
}else{
$objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth(20);
}
$col = chr(ord($col) + 1);
}
unset($res[0]);
// 數據起始行
$row_num = 2;
// 向每行單元格插入數據
foreach ($res as $value) {
// 設置所有垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A' . $row_num . ':' . 'Z' . $row_num)->getAlignment()
->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
// 設置價格為數字格式
// $objPHPExcel->getActiveSheet()->getStyle('D' . $row_num)->getNumberFormat()
// ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
// 居中
$objPHPExcel->getActiveSheet()->getStyle('A' . $row_num . ':' . 'Z' . $row_num)->getAlignment()
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
// 設置單元格值
$col = 'A';
foreach ($keys as $key) {
// 單元格賦值
$objPHPExcel->getActiveSheet()->setCellValue($col . $row_num, $value[$key]);
$col = chr(ord($col) + 1);
}
$row_num++;
}
if($FileName==null){
$FileName=time();
}
$outputFileName = $FileName . '.xls';
$xlsWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="' . $outputFileName . '"');
// header(" Content-type:application / vnd.ms-excel; charset = UTF-8");
// header('Content-Disposition:attachment; filename =“'.iconv("gb2312",'utf-8',$outputFileName).'.xlsx”');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$xlsWriter->save("php://output");
// echo file_get_contents($outputFileName);
return $res;
}
引入文件(PHPExcel.php)傳送門 :http://xcdn.php.cn/leiku/chuli/PHPExcel-1.8.zip?sign=32bd8b6174060344d512ff228b4bc229×tamp=1571102641
