自带的例子:
生成折线图示例:
<?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); }
效果图:
参考文章:
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-11 12:53:35