thinkphp5 assemble their own data export excel file

Export function:

  / * 
     * Implement common data export function 
     * @param $ expTitle export file name 
     * @param $ expCellName export file column names 
     * @param $ expTableData export data 
     * / 
    function export_excel ($ expTitle, $ expCellName, $ expTableData) { 
        $ xlsTitle = iconv ( 'utf-8', 'gb2312', $ expTitle); // file name 
        $ fileName = $ expTitle; // or $ xlsTitle file name may be set according to its own 
        $ cellNum = COUNT (expCellName $); 
        $ dataNum COUNT = ($ expTableData); 
        $ objPHPExcel new new PHPExcel = (); // a method
        $ 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'); 
        // set the head derived Remark 
        $ objPHPExcel-> getActiveSheet (0) - > mergeCells ( 'A1:' $ cellName [$ cellNum - 1] '..1 '); // merge cells 
        $ objPHPExcel-> setActiveSheetIndex (0) - > setCellValue (' A1 derived time ', $ expTitle.': '. DATE (' Ymd H: I: S ')); 
            // Set column name 
        for ($ I = 0; $ I <$ cellNum; $ I ++) { 
            $ objPHPExcel->. setActiveSheetIndex (0) -> setCellValue ($ cellName [$ I] '2', $ expCellName [$ I] [. 1 ]); 
        } 
        // assignment} // assignment} // assignment
        for ($ I = 0; $ I <$ dataNum; $ I ++) { 
            for ($ J = 0; $ J <$ cellNum; $ J ++) { 
                IF (isset ($ expTableData [$ I] [$ expCellName [$ J ] [0]])) { 
                    $ objPHPExcel-> getActiveSheet (0) -> setCellValue ( 
                        . $ cellName [$ J] (I + $. 3), $ expTableData [$ I] [$ expCellName [$ J] [0] ] 
                    ); 
                } the else { 
                    $ objPHPExcel-> getActiveSheet (0) -> setCellValue ( 
                        $ cellName [$ J] (I + $. 3.), '' 
                    ); 
                } 
            } 
        } 
        ob_end_clean (); // this step is very critical, to clear the buffer to prevent distortion derived excel 
        header ( 'pragma: public') ;
        header ( 'the Content-type: file application / vnd.ms-Excel; charset = UTF-. 8; name = "' $ xlsTitle '* .xls.."'); 
        header ( "the Content-Disposition: Attachment; filename = $ fileName. xls "); //" xls "refer to a note at 
        $ objWriter = \ PHPExcel_IOFactory :: createWriter ( 
            $ objPHPExcel, 'Excel 5' 
        ); //" Excel2007 "generation 2007 version of xlsx," Excel5 "generation 2003 version of XLS 
        $ objWriter-> Save ( 'PHP: // Output'); 
    }

  The function then, assembled so that their data:

// download file name 
$ expTitle = 'the Test'; 
// field name corresponding to the title 
$ expCellName = [ 
	[ 'name', 'name'], 
	[ 'Age', 'Age'], 
	[ 'Sex', 'gender' ] 
]; 
// data assembled 
$ expTableData = [ 
	[ 'name' => '. 1', 'Age' => 18 is, 'Sex' => 'M'], 
	[ 'name' => '2', 'Age '=> 18,' sex ' =>' M '], 
	[' name '=>'. 3 ',' Age '=> 18,' sex ' =>' M '], 
	[' name '=>'. 4 ',' age '=> 18 ,' sex '=>' M '] 
]; 
// call the exported function
export_excel ($ expTitle, $ expCellName, $ expTableData)

Guess you like

Origin www.cnblogs.com/myIvan/p/11352481.html
Recommended