引言
php导出数据,文件名后缀为.xlsx
方法
if (!function_exists('export_excel')) {
function export_excel($list,$keyTitle,$filename='',$startRow=1,$excel2007=false){
require_once EXTEND_PATH.'/PHPExcelTool/Tool/PHPExcel.php';
require_once EXTEND_PATH.'/PHPExcelTool/Tool/PHPExcel/Writer/Excel2007.php';
if(!is_array($keyTitle)) return false;
$header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ','BA','BB','BC','BD','BE','BF','BG','BH','BI','BJ','BK','BL','BM','BN','BO','BP','BQ','BR','BS','BT','BU','BV','BW','BX','BY','BZ');
$objPHPExcel = new \PHPExcel();
if($excel2007){
$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
if(empty($filename)) $filename = time().'.xlsx';
}else{
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
if(empty($filename)) $filename = time().'.xls';
}
$objActSheet = $objPHPExcel->getActiveSheet();
$indexValue = array_values($keyTitle);
foreach ($indexValue as $key => $value){
$objActSheet->setCellValue($header_arr[$key].$startRow,$indexValue[$key]);
}
$startRow++;
$indexKey = array_keys($keyTitle);
foreach ($list as $row) {
foreach ($indexKey as $key => $value){
$objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]?:'-');
}
$startRow++;
}
if (strpos($filename,'/') === false) {
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$filename.'');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
}
else {
$objWriter->save($filename);
}
}
}