• PHPExcel生成图表(转载)


    PHPExcel下载

    生成折线图示例:

    <?php  
        $dir = dirname(__FILE__);  
        require $dir."/db.php";  
        require $dir."/PHPExcel.php";  
      
        $db = new db($phpexcel);  
        $objPHPExcel = new PHPExcel();  
        $objSheet = $objPHPExcel->getActiveSheet();  
      
        $data = array(  
            array("","一班","二班","三班"),  
            array("不及格",20,30,40),  
            array("良好",30,50,70),  
            array("优秀",14,12,30)  
        );  
        $objSheet->fromArray($data);  
      
        //图表  
        $labels = array(  
            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$B$1',null,1),//一班  
            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$C$1',null,1),//二班  
            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$D$1',null,1),//三班  
        );  
        $xLabels = array(  
            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$4',null,3),//取x轴刻度  
        );  
        $datas = array(  
            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$4',null,3),//取一班数据  
            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$4',null,3),//取二班数据  
            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$4',null,3),//取三班数据  
        );  
      
        $series = array(  
            new PHPExcel_Chart_DataSeries(  
                PHPExcel_Chart_DataSeries::TYPE_LINECHART,  
                PHPExcel_Chart_DataSeries::GROUPING_STANDARD,  
                range(0, count($labels)-1),  
                $labels,  
                $xLabels,  
                $datas  
            )  
        ); //图表框架  
      
        $layout=new PHPExcel_Chart_Layout();  
        $layout->setShowVal(true);  
        $areas = new PHPExcel_Chart_PlotArea($layout,$series);  
        $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT,$layout,false);  
        $title = new PHPExcel_Chart_Title("高一学生成绩分布");  
        $ytitle = new PHPExcel_Chart_Title("人数");  
        $chart = new PHPExcel_Chart('line_chart',$title,$legend,$areas,true,false,null,$ytitle);  
        $chart->setTopLeftPosition("A7")->setBottomRightPosition("K25"); //图表位置  
      
        $objSheet->addChart($chart);  
      
      
        $excel = 'Excel2007';  
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$excel);  
        $objWriter->setIncludeCharts(true); //图表必须  
        // $objWriter->save($dir.'/export.xls'); //生成excel文件  
        browser_export($excel,"browser_chart.xlsx"); //浏览器输出  
      
        SaveViaTempFile($objWriter);  
      
        function browser_export($type, $filename){  
            if($type == "Excel5"){  
                header('Content-Type: application/vnd.ms-excel'); //excel2003  
            }else{  
                header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //excel2007  
            }  
            header('Content-Disposition: attachment;filename="'.$filename.'"');  
            header('Cache-Control: max-age=0');  
        }  
      
        /*解决Excel2007不能导出*/  
        function SaveViaTempFile($objWriter){  
            $filePath = dirname(__FILE__) . rand(0, getrandmax()) . rand(0, getrandmax()) . ".tmp";  
            $objWriter->save($filePath);  
            readfile($filePath);  
            unlink($filePath);  
        }  

    效果图:

  • 相关阅读:
    【BZOJ1831】[AHOI2008]逆序对(动态规划)
    【agc030f】Permutation and Minimum(动态规划)
    【BZOJ3167】[HEOI2013]SAO(动态规划)
    【CF802C】Heidi and Library(网络流)
    【CF671D】Roads in Yusland(贪心,左偏树)
    对偶问题
    【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流)
    【BZOJ3691】游行(网络流)
    【CF908G】New Year and Original Order(动态规划)
    【CF809C】Find a car(动态规划)
  • 原文地址:https://www.cnblogs.com/zhuhua-php/p/9014105.html
Copyright © 2020-2023  润新知