先composer回來phpexcel的包,php
use PHPExcel;
use PHPExcel_Writer_Excel2007;
use PHPExcel_Style_Border;
use PHPExcel_Style_Alignment;
use PHPExcel_IOFactory;網絡
public function actionTixianExport($id){ $model = $this->findModel($id); $orders = \common\models\Order::find()->where(['in','id',explode(",", $model->orderId)])->all(); error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); $objPHPExcel = new PHPExcel(); /* 如下是一些設置 ,什麼做者 標題啊之類的 */ $objPHPExcel->getProperties()->setCreator("河南億飛網絡科技有限公司") ->setLastModifiedBy("劉明陽") ->setTitle("數據EXCEL導出") ->setSubject("數據EXCEL導出") ->setDescription("提現申請表") ->setKeywords("excel") ->setCategory("result file"); $i = 1; $objPHPExcel->getActiveSheet()->mergeCells('A1:E1'); $objPHPExcel->getActiveSheet()->setTitle('提現申請表'); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i, '提現申請表'); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A'.$i)->applyFromArray( array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER ) ) ); $i = 2; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i, '申請日期:'.date("Y-m-d H:i:s",$model->created_at)) ->setCellValue('B'.$i, '商家名稱:'.$model->company_name) ->setCellValue('C'.$i, '類型:'.ProviderTixian::tixianlabels($model->type)) ->setCellValue('D'.$i, '姓名:'.$model->xingming) ->setCellValue('E'.$i, '帳號:'.$model->kaihuhang ." ". $model->haoma); $i = 3; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i, '訂單日期') ->setCellValue('B'.$i, '訂單號') ->setCellValue('C'.$i, '接單時間') ->setCellValue('D'.$i, '完成時間') ->setCellValue('E'.$i, '金額'); $i = 4; //查詢數據 foreach ($orders as $v) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i,date("Y-m-d H:i:s",$v['created_at'])) ->setCellValue('B'.$i,substr($v['sn'],4)) ->setCellValue('C'.$i,date("Y-m-d H:i:s",$v['qiangdan_shijian'])) ->setCellValue('D'.$i,date("Y-m-d H:i:s",$v['wancheng_shijian'])) ->setCellValue('E'.$i,$v['total_price']); $i++; } $objPHPExcel->getActiveSheet()->mergeCells('A'.$i.':E'.$i); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$i,"總額:".$model->jine); $objPHPExcel->setActiveSheetIndex(0)->getStyle('A'.$i)->applyFromArray( array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER ) ) ); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="提現申請表.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; }
這種是靠excel的兼容性作的,不依賴任何第三方擴展 ,存在必定的兼容問題app
public function actionTixianExportBak($id){ //申明頭部,生成excel類型文件 header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=提現申請表.xls"); $model = $this->findModel($id); $orders = \common\models\Order::find()->where(['in','id',explode(",", $model->orderId)])->all(); //獲取全部表字段 $type = array('2' => '普通企業用戶', '3' => '高級企業用戶', '4' => 'VIP企業用戶', '1' => '我的用戶',); //製做表頭 echo "<table style='border:solid 1px #ddd;'>"; echo "<tr><th colspan='5'>提現申請單</th></tr>"; echo "<tr style='border:solid 1px #ddd;'>"; echo "<td>申請日期:" . date("Y-m-d H:i:s",$model->created_at) . "</td>"; echo "<td>商家名稱:" . $model->company_name . "</td>"; echo "<td>類型:" . ProviderTixian::tixianlabels($model->type) . "</td>"; echo "<td>姓名:" . $model->xingming . "</td>"; echo "<td>帳號:" . $model->kaihuhang ." ". $model->haoma. "</td>"; echo "</tr>"; echo "<tr style='border:solid 1px #ddd;'>"; echo "<td>訂單日期</td>"; echo "<td>訂單號</td>"; echo "<td>接單時間</td>"; echo "<td>完成時間</td>"; echo "<td>金額</td>"; echo "</tr>"; $columns = ['created_at','sn','qiangdan_shijian','wancheng_shijian','total_price']; //查詢數據 foreach ($orders as $v) { echo "<tr style='border:solid 1px #ddd;'>"; foreach($columns as $k=>$column){ if($k == 0 || $k == 2 || $k == 3){ echo "<td>" . date("Y-m-d H:i:s",$v[$column]) . "</td>"; }else if($k == 1){ echo "<td>" . substr($v[$column], 3) . "</td>"; }else{ echo "<td>" . $v[$column] . "</td>"; } } echo "</tr>"; } echo "<tr><td colspan='5' style='text-align:center;'>總額:".$model->jine."</td></tr>"; echo "</table>"; }