将数据导出【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'); // 文件经过浏览器下载
    }