zoukankan      html  css  js  c++  java
  • 将数据 导出excel表格式

    百度网盘依赖文件下载:

    链接:https://pan.baidu.com/s/1L8HBtDtiBisAikQKbRnZIg 
    提取码:cjje 
    复制这段内容后打开百度网盘手机App,操作更方便哦

    我的考试完提交生成的数据

    这是我的考试题类型

    //导出调查评议的数据
        public function diaocha(){
            $xlsName = '表格形式 调查评议 信息';
            $xlsTitle = array(
                array('ming','试题所属分类'),
                array('renshu','共评价人'),
                array('fenshu','总评价分'),
                array('ping','总平均分'),
                array('liang','良好(%)'),
                array('yiban','一般(%)'),
                array('cha','差(%)'),
            );
            $leiid=M('linzi_kaoshi_user')->where(array('ti_id'=>2))->group('lei_id')->getField('lei_id',true);
            $xlsData = array();
            foreach($leiid as $k=>$r){
                //试题分类
                $lei_title = M('linzi_tijian_lei')->where(array('id'=>$r['lei_id']))->find();
                $lei_title2 = M('linzi_tijian')->where(array('id'=>$lei_title['tj_id']))->getField('title');
                $xlsData[$k]['ming'] = $lei_title2 .'——'. $lei_title['title'];//试题所属分类
                $data['ti_id'] = 2;
                $data['lei_id'] = $r;
                $list = M('linzi_kaoshi_user')->where($data)->select();
                $xlsData[$k]['renshu'] = count($list);//总人数
                $fenshu = M('linzi_kaoshi_user')->where($data)->sum('sum');
                $xlsData[$k]['fenshu'] = round($fenshu,2);//总分数
                $xlsData[$k]['ping'] = round($xlsData[$k]['fenshu']/$xlsData[$k]['renshu'],2);//总平均分
                //良好,一般,很差
                $liang = 0;
                $yiban = 0;
                $cha = 0;
                $tishu = 0;
                foreach($list as $kk=>$v){
                    $wode = json_decode($v['wode'],true);
                    $tishu = $tishu+count($wode);//总题数;
                    foreach($wode as $kkk=>$vv){
                        $ti_id = explode('xuanze',$vv['tihao']);
                        $kaoshi = M('linzi_kaoshi')->where(array('id'=>$ti_id[1]))->find();
                        $ks_xuan = json_decode($kaoshi['xuan'],true);
                        //循环我选的答案,索引(0 良好)的有几个  索引(1 一般)的有几个  索引(2 很差)的有几个,这是我固定好的数据值 
                        switch($vv['daan'][0]){
                            case 0:
                                $liang=$liang+1;
                                break;
                            case 1:
                                $yiban=$yiban+1;
                                break;
                            case 2:
                                $cha=$cha+1;
                                break;    
                        }
                    }
                }
                
                $xlsData[$k]['liang'] = round($liang/$tishu,2)*100;
                $xlsData[$k]['yiban'] = round($yiban/$tishu,2)*100;
                $xlsData[$k]['cha'] = round($cha/$tishu,2)*100;
            }
    //        dump($xlsData);die();
            exportExcel($xlsName,$xlsTitle,$xlsData);
        }

     

    exportExcel方法是放在function.php里的  此方法可以导入导出

    //导出excel表格
    function exportExcel($expTitle,$expCellName,$expTableData){
        $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
        $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
        $cellNum = count($expCellName);
        $dataNum = count($expTableData);
        vendor("PHPExcel.PHPExcel");
    
        $objPHPExcel = new PHPExcel();
        $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','BA','BB','BC','BD','BE','BF','BG','BH','BI');
    
        //$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
        // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));
        for($i=0;$i<$cellNum;$i++){
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1', $expCellName[$i][1]);
        }
        // Miscellaneous glyphs, UTF-8
        for($i=0;$i<$dataNum;$i++){
            for($j=0;$j<$cellNum;$j++){
                $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2), $expTableData[$i][$expCellName[$j][0]]);
            }
        }
    
        header('pragma:public');
        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
        header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }
  • 相关阅读:
    典型用户和场景总结
    排球的详细记分规则
    js 实现全选
    博客搬家啦!
    leetcode #980 不同路径||| (java)
    ADV-299 宰羊 (java,过了30%)
    ADV-292 计算行列式 java
    ADV-302 秘密行动 java
    ADV-297 快速排序 java
    ADV-298 和谐宿舍2 动态规划
  • 原文地址:https://www.cnblogs.com/zc290987034/p/7567193.html
Copyright © 2011-2022 走看看