thinkphp3.2.3 integriert phpExcel zum Exportieren von Daten

不言
Freigeben: 2023-03-23 16:32:02
Original
2879 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Integration von PHPExcel in Thinkphp3.2.3 zum Exportieren von Daten.

public function alliance_createxls(){  
        $allianceObj = M('alliance_apply');
        $result = $allianceObj
                  ->field("apply_name,sex,company,card,duty,phone,points_part,email,stayinfo,eatinfo,address,remark")
                  ->select();
        foreach ($result as $key => $vo) {
        	$result[$key]['card'] = $vo['card']." ";
        	$result[$key]['phone'] = $vo['phone']." ";
        	if($vo['sex'] == 0){
                 $result[$key]['sex'] = '男';  
        	}else{
        		 $result[$key]['sex'] = '女';
        	}
        	switch ($vo['duty']) {
        		    case 1:
        			$result[$key]['duty'] = '学校院长';
        			break;
        			case 2:
        			$result[$key]['duty'] = '学校副院长';
        			break;
        			case 3:
        			$result[$key]['duty'] = '分院院长';
        			break;
        			case 4:
        			$result[$key]['duty'] = '分院副院长';
        			break;
        			case 5:
        			$result[$key]['duty'] = '系主任';
        			break;
        			case 6:
        			$result[$key]['duty'] = '副系主任';
        			break;
        			case 7:
        			$result[$key]['duty'] = '教研室主任';
        			break;
        			case 8:
        			$result[$key]['duty'] = '教师';
        			break;
        			case 9:
        			$result[$key]['duty'] = '总经理';
        			break;
        			case 10:
        			$result[$key]['duty'] = '副总经理';
        			break;
        			case 11:
        			$result[$key]['duty'] = '总监';
        			break;
        			case 12:
        			$result[$key]['duty'] = '职员';
        			break;
        		
        		default:
        			$result[$key]['duty'] = '学校院长';
        			break;
        	}
        	switch ($vo['points_part']) {
        		    case 1:
        			    $result[$key]['points_part'] = '信息安全校企合作分盟';
        			break;
        			case 2:
        			    $result[$key]['points_part'] = '云计算校企合作分盟';
        			break;
        			case 3:
        			    $result[$key]['points_part'] = '计算机网络校企合作分盟';
        			break;
        			case 4:
        			    $result[$key]['points_part'] = '机器人技术应用校企合作分盟';
        			break;
        			case 5:
        			    $result[$key]['points_part'] = 'VR专业分盟';
        			break;       		
        		default:
        			$result[$key]['points_part'] = '--';
        			break;
        	}
        	if($vo['stayinfo'] == 1){
                    $result[$key]['stayinfo'] = '单住';
        	}else{
                    $result[$key]['stayinfo'] = '合住';
        	}
        }
 
	    //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
	    import("Org.Util.PHPExcel");
	    import("Org.Util.PHPExcel.Writer.Excel5");
	    import("Org.Util.PHPExcel.IOFactory.php");
	    $filename="联盟大会报名";
	    $headArr=array("姓名","性别","单位名称","身份证号","职务","手机号码","分盟参与意向","邮箱地址","住宿要求","饮食要求","通讯地址","备注信息");
	    $this->getExcel($filename,$headArr,$result);
	}
	private    function getExcel($fileName,$headArr,$data){
    //对数据进行检验
    if(empty($data) || !is_array($data)){
        die("data must be a array");
    }
    //检查文件名
    if(empty($fileName)){
        exit;
    }
    $date = date("Y_m_d_H_i_s",time());
    $fileName .= "_{$date}.xls";
    //创建PHPExcel对象,注意,不能少了\
    $objPHPExcel = new \PHPExcel();
    $objProps = $objPHPExcel->getProperties();


    //设置表头
    $key = ord("A");
    foreach($headArr as $v){
        $colum = chr($key);
        $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){// 列写入
            $j = chr($span);
            $objActSheet->setCellValue($j.$column, $value);
            $span++;
        }
        $column++;
    }
    $fileName = iconv("utf-8", "gb2312", $fileName);
    //重命名表
    // $objPHPExcel->getActiveSheet()->setTitle('test');
    //设置活动单指数到第一个表,所以Excel打开这是第一个表
    $objPHPExcel->setActiveSheetIndex(0);
    ob_end_clean();
    ob_start();
    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;
}
Nach dem Login kopieren

Über PHPExcel werden beim Exportieren von Excel-ID-Karten die Zahlen als wissenschaftlich exportiert Zählverarbeitungsmethode

Dies liegt daran, dass die Standardzahl in Excel zu lang ist und in wissenschaftliche Notation umgewandelt wird. Die Verarbeitung ist sehr einfach. Wenn wir die Zahl exportieren, konvertieren wir sie in eine Zeichenfolge. und Excel sie nicht als Zahlen erkennt, werden sie nicht in wissenschaftlicher Notation angezeigt.

Meine Lösung besteht darin, nach der Variablen ein Leerzeichen einzufügen, was einfach und praktisch ist.

$usercode .=  ' ';$money .= ' ';
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonthinkphp3.2.3 integriert phpExcel zum Exportieren von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!