直接上干货: <?php $cards_list = Cards::find($parameters); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getProperties()->setCreator("jiequan") ->setLastModifiedBy("jiequan") ->setTitle("card List") ->setSubject("card List") ->setDescription("card List") ->setKeywords("excel") ->setCategory("result file"); $exportKeys = ["number","password","gtime"]; /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/ $cell = ["A","B","C","D"]; $fieldsKeyValue = array( "number" => "卡号", "password" => "密码", "gtime" => "领取时间", ); foreach ($exportKeys as $k => $field) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($cell[$k] . '1', $fieldsKeyValue[$field]); } foreach ($cards_list as $k => $card) { $num = $k + 1; foreach ($exportKeys as $i => $exportKey) { if($exportKey == "number" || $exportKey == "password") { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($cell[$i] . ($num + 1), $card->$exportKey,\PHPExcel_Cell_DataType::TYPE_STRING); } else { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($cell[$i] . ($num + 1), $card->$exportKey); } } $objPHPExcel->getActiveSheet()->getColumnDimension( 'A')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension( 'B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension( 'C')->setWidth(20); } $objPHPExcel->getActiveSheet()->setTitle('card_List'); $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $name = 'cardList' . "ex" . date("YmdHis",time()) . rand(1000,9999); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$name.'.xls"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;