php生成excel图表_PHPExcel生成图表

自带的例子:

aef4756e99a1568fde2cf1253bbe642a.png

生成折线图示例:

$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);

}

效果图:

45eb9a861778576625846303a2f6bda1.png

参考文章:

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/qq_20480611/article/details/48003711

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值