tp5 非常好用的表單導出!

common.php

/**

 * excel表格導出

 * @param string $fileName 文件名稱

 * @param array $headArr 表頭名稱

 * @param array $data 要導出的數據

 * @author static7  */

function daochu($fileName = '', $headArr = [], $data = []) {
    // $fileName = '報名表';
    // $headArr = ['姓名','','身份證號','集合地點'];
    // $data = [0=>['1','2','3'],1=>['2','1'],2=>['3',['1']]];

    $fileName .= "_" . date("Y_m_d", Request::instance()->time()) . ".xls";

    $objPHPExcel = new \PHPExcel();

    $objPHPExcel->getProperties();

    $key = ord("A"); // 設置表頭

    foreach ($headArr as $v) {

        $colum = chr($key);

        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

        $key += 1;

    }

    $column = 2;

    $objActSheet = $objPHPExcel->getActiveSheet();

    foreach ($data as $key => $rows) { // 行寫入

        $span = ord("A");

        foreach ($rows as $keyName => $value) { // 列寫入

            $objActSheet->setCellValue(chr($span) . $column, $value."\t");

            $span++;

        }

        $column++;

    }

    $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名錶

    $objPHPExcel->setActiveSheetIndex(0); // 設置活動單指數到第一個表,所以Excel打開這是第一個表

    header('Content-Type: application/vnd.ms-excel');

    header("Content-Disposition: attachment;filename='$fileName'");

    header('Cache-Control: max-age=0');

    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

    $objWriter->save('php://output'); // 文件通過瀏覽器下載

    exit();

}

然後無論我們在那裏的 需要用到的時候就直接調用 表單導出這個按鈕就行了 daochu();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章