1. 程式人生 > >自己測試,在yii2中實現PHPExcel資料匯出例項

自己測試,在yii2中實現PHPExcel資料匯出例項

<?php class StudentService extends StudentExcelService{     public funciton exportStudentMessage()     {        $this->filename = "學生資訊表".date("Y-m-d");              $first_row_array = array(                 "id"=>"編號",                 "name"=>"姓名",                 "sex"=>"性別",                 "age"
=>"年齡"             );         #獲取匯出資料         $list = $this->getStudentInfo();         list($objPHPExcel, $excel_row_char, $line_num) = $this->setFirstLine($first_row_array, $title = '學生資訊');         #設定表格資料內容         $this->setStudentExport($list, $excel_row_char, $objPHPExcel, $line_num
);         #匯出excel檔案         $this->exportListToFile($objPHPExcel);     }          public function setFirstLine($first_row_array, $title)     {         $row_char = 'A';         $first_line_num = '2';         $objPHPExcel = new \PHPExcel();         $objPHPExcel             ->getProperties()             ->setCreator($title
. "匯出")             ->setLastModifiedBy($title . "匯出")             ->setTitle($title . "匯出")             ->setSubject($title . "匯出")             ->setDescription($title . "匯出")             ->setKeywords("excel")             ->setCategory("result file");     #設定樣式,寬度,居中     $dao = $objPHPExcel->setActiveSheetIndex(0);     $excel_row_char = array();     foreach ($first_row_array as $key => $value) {         $excel_row_char[$key] = $row_char;         $dao->setCellValue($row_char . $first_line_num, $value);         $row_char++;     }     return array($objPHPExcel, $excel_row_char, $first_line_num); } public function setStudentExport($data, $excel_row_char, \PHPExcel $objPHPExcel, $line_num) {     $styleArray1 = array(         'alignment' => array(             'horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,         ),     );     $dao = $objPHPExcel->setActiveSheetIndex(0);     $dao->getDefaultColumnDimension()->setWidth(15);     $dao->getColumnDimension('B')->setWidth(30);     $dao->getColumnDimension('C')->setWidth(60);     $dao->getRowDimension('1')->setRowHeight(22);     $dao->getRowDimension('2')->setRowHeight(20);     $dao->getStyle('A1')->getFont()->setBold(true);     $dao->getStyle('A1')->getFont()->setSize(16);     $dao->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);     $dao->getStyle('A2:D2')->getFont()->setBold(true);     $dao->getStyle('A2:D2')->getFont()->setSize(10);     $dao->getStyle('A2:D2')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);     $dao->getStyle('A2:D2')->getBorders()->getAllBorders()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN);     $dao->mergeCells('A1:D1');     $dao->setCellValue('A1', '學生資訊表');     $dao->freezePane('A3');     $objPHPExcel->getActiveSheet()->getStyle('A:D')->applyFromArray($styleArray1);     foreach ($data as $key => $list) {         $line_num += 1;         $dao->setCellValueExplicit($excel_row_char['id'] . $line_num, $list['id'])             ->setCellValue($excel_row_char['name'] . $line_num, $list['name'])             ->setCellValue($excel_row_char['age'] . $line_num, $list['age'])             ->setCellValue($excel_row_char['sex'] . $line_num, $list['sex']);         unset($data[$key]);     } } }