將數據導出【excel表】格式

百度網盤依賴文件下載:php

連接:https://pan.baidu.com/s/1L8HBtDtiBisAikQKbRnZIg 
提取碼:cjje 
複製這段內容後打開百度網盤手機App,操做更方便哦瀏覽器

 

導出方案app

 //導出人員模板
    public function temp_out($fileName = '', $headArr = array(), $data = array(), $dataHeader = array()){
        $blUserModel = M('bl_user','endthink_','DB_CONFIG2');
        $list = $blUserModel->where(array('status' => 1))->order('bl_number asc')->field('bl_number,name,jiaban_type')->select();
        $newData = array();
        foreach($list as $k => $v){
            $newData[] = array(
                'uid' => $v['bl_number'],
                'name' => $v['name'],
                'hour' => '',
                'hourall' => '',
                'days' => '',
                'type' => $v['jiaban_type'],
                'leave' => '0',
                'month' => date('Ym',time())
            );
        }
        if(!$newData) $this->error('暫無符合條件的數據!');
        //$headArr = array('工號','姓名','下午加班時長', '總加班時長(上午+下午)', '類型(1:加班費和積分 2:僅加班費 3:僅積分)', '出差天數', '出差加班時長(下午)', '出差類型(1:有補助有加班費  2:有補助無加班費  3:無補助有加班費  4:無補助無加班費)', '請假天數','月份');
        //$dataHeader = array('uid','name','hour','hourall','type','days','hourcc' ,'cc_type','leave','month');
        $conf = array(
            'uid' => '工號',
            'name' => '姓名',
            'hour' => '下午加班時長(包括出差加班)',
            'hourall' => '非出差加班時長',
            'days' => '出差天數',
            'type' => '類型(1:有補助有加班費  2:有補助無加班費 3:無補助無加班費)',
            'leave' => '請假天數',
            'month' => '月份'
        );
        $headArr = array_values($conf);
        $dataHeader = array_keys($conf);
        $fileName = date('Y年m月',time()).'加班統計模板.xls';
        dataExportOut($headArr, $newData, $dataHeader, $fileName);
    }

 

function.php 
輸入導出

 

/**
     * function.php   輸入導出
     */
    function dataExportOut($headArr, $newData, $dataHeader, $fileName){
        vendor("PHPExcel.PHPExcel");
        $objPHPExcel = new \PHPExcel();
        $objPHPExcel->getProperties();

        $key = ord("A"); // 設置表頭
        foreach ($headArr as $v) {
            $colum = chr($key);
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
            $key += 1;
        }
        if($newData){
            $column = 2;
            $objActSheet = $objPHPExcel->getActiveSheet();
            foreach ($newData as $key => $rows) { // 行寫入
                $span = ord("A");
                foreach ($rows as $keyName => $value) { // 列寫入
                    foreach ($dataHeader as $head) {
                        if ($head == $keyName) {
                            $objActSheet->setCellValue(chr($span) . $column, $value);
                            $span++;
                        }
                    }
                }
                $column++;
            }
        }

        $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名錶
        $objPHPExcel->setActiveSheetIndex(0); // 設置活動單指數到第一個表,因此Excel打開這是第一個表
        ob_end_clean();
        ob_start();
        header('Content-Type: application/vnd.ms-excel;charset=UTF-8');
        header("Content-Disposition: attachment;filename='$fileName'");
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output'); // 文件經過瀏覽器下載
    }
相關文章
相關標籤/搜索