PHPExcel生成图表

这篇博客介绍了如何利用PHPExcel库在PHP环境下生成Excel文件,并提供了创建折线图的示例,包括下载PHPExcel、展示代码片段及最终图表的效果预览。此外,还提到了参考资料,如PHPExcel与MySQL的结合使用以及设置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样式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值