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

效果图:

参考文章:

PHPExcel 

PHPExcel+MySQL 

PHPExcel样式

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

时间: 2024-11-11 12:53:35

PHPExcel生成图表的相关文章

前端生成图表

1.常用的前端生成图表的工具HighCharts和echarts 2.具体内容可参考官方文档,有一些具体实例,JS和HTML的代码都存在,还可以编辑代码 3.具体的设置还可以参考官方文档 4.使用样例: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src=&qu

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

python接口自动化测试(十一)-写入excel(xlswriter)--生成图表

一.折线图: # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个sheet worksheet = workbook.add_worksheet() # worksheet = workbook.add_worksheet("bug_analysis") # 自定义样式,加粗 bold = workb

PHPExcel生成或读取excel文件

以下是详细代码示例: <?php /** * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释. * 如果使用 Excel5 ,输出的内容应该是GBK编码. */ require_once 'PHPExcel.php';// uncomment ////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls // or ////require_once 'PHPExcel/Writer/Ex

thinkphp整合系列之phpexcel生成生成excel文件

在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲解thinkphp整合phpexcel的过程: 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:生成excel的函数 /** * 数组

[转] C#操作EXCEL,生成图表的全面应用

gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索了所有的相关信息,只有部分介绍,具体格式的介绍没有,经过我不断的实践和探索,终于完成了这项艰巨的任务. 有两种实现方式,一种是利用OWC11组件完成,一种运用Excel完成! 运用OWC11的完成,适合生成一个图形文件,之后不能不在文件中编辑:运用Excel则更适合利用EXCEL文件中的数据直 接在

Highcharts使用二维数组生成图表

二维数组是更为灵活的一种数据存储方式.在Highcharts中,可以使用配置项column和rows二维数组.对于使用columns构建的二维数组,Highcharts会按照列从上向下读取每个x值的节点y值.而从第二行开始,每行是一个数据列,并且开始的第一个元素是数据列名.其构成的二维数组结构如下: [ [null,   x值1, x值2, x值3, -, x值n], [数据列名1, y值1, y值2, y值3, -, y值n], [数据列名2, y值1, y值2, y值3, -, y值n,],

使用ichartjs生成图表

官网:http://www.ichartjs.com/ ichartjs 是一款基于HTML5的图形库.使用纯javascript语言, 利用HTML5的canvas标签绘制各式图形. ichartjs致力于为您的应用提供简单.直观.可交互的体验级图表组件.是WEB/APP图表展示方面的解决方案 .如果你正在开发HTML5的应用,ichartjs正好适合您. ichartjs目前支持饼图.环形图.折线图.面积图.柱形图.条形图.ichartjs是基于Apache License 2.0协议的开源

PHPExcel生成Excel文件---提示Class &#39;PHPExcel_Style_Alignment&#39; not found

解决办法是在PHPExcel_Style_Alignment 和PHPExcel_Style_Border 前面加上"\"符号,就完美解决了 $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 在thinkphp的使用中最后的 PHPExcel_Style_Alignm