码迷,mamicode.com
首页 > Web开发 > 详细

PHPExcel生成图表

时间:2015-08-26 15:50:15      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:php   windows   excel   

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

	


效果图:

技术分享

参考文章:

PHPExcel 

PHPExcel+MySQL 

PHPExcel样式

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

PHPExcel生成图表

标签:php   windows   excel   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!