PHP發送郵件戳這里https://www.cnblogs.com/wangzhaobo/p/8931328.html
PHP導出excel戳這里https://www.cnblogs.com/wangzhaobo/p/10143054.html
看完這兩篇文章就只剩下一個問題
怎么把PHP導出的excel直接保存到服務器上而不是彈框下載.
第一步是把那些設置的header代碼去掉,
第二步是保存excel
以下是保存excel到服務器的PHP代碼, 然后再發送郵件的代碼里面這樣寫$mail->AddAttachment($this->exportListExcel($expTitle,$expCellName,$expTableData)); 完成 !
public function exportListExcel($expTitle,$expCellName,$expTableData){ $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名稱 $fileName = $xlsTitle; $cellNum = count($expCellName); $dataNum = count($expTableData); Loader::import('PHPExcel.Classes.PHPExcel'); Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory'); Loader::import('PHPExcel.Classes.PHPExcel.Reader.Excel5'); $objPHPExcel = new \PHPExcel(); // 居中 $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal('center'); $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical('center'); $cellName = 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'); // $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合並單元格 // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s')); for($i=0;$i<$cellNum;$i++){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1', $expCellName[$i][1]); $objPHPExcel->getActiveSheet(0)->getColumnDimension($cellName[$i])->setWidth($expCellName[$i][2]); } // Miscellaneous glyphs, UTF-8 for($i=0;$i<$dataNum;$i++){ for($j=0;$j<$cellNum;$j++){ $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2), $expTableData[$i][$expCellName[$j][0]]); } } ob_start(); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); $content = ob_get_contents(); ob_end_clean(); $file = $fileName.".xls" ; file_put_contents($file, $content); return $file; }