| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | require __DIR__ . '/Header.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | $worksheet = $spreadsheet->getActiveSheet(); | 
					
						
							|  |  |  | $worksheet->fromArray( | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |             ['', 2010, 2011, 2012], | 
					
						
							|  |  |  |             ['Q1', 12, 15, 21], | 
					
						
							|  |  |  |             ['Q2', 56, 73, 86], | 
					
						
							|  |  |  |             ['Q3', 52, 61, 69], | 
					
						
							|  |  |  |             ['Q4', 30, 32, 0], | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the Labels for each data series we want to plot
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $dataSeriesLabels1 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), //	2011
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | //	Set the X-Axis Labels
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $xAxisTickValues1 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), //	Q1 to Q4
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | //	Set the Data values for each data series we want to plot
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $dataSeriesValues1 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Build the dataseries
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $series1 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( | 
					
						
							|  |  |  |     \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_PIECHART, // plotType
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  |     null, // plotGrouping (Pie charts don't have any grouping)
 | 
					
						
							|  |  |  |     range(0, count($dataSeriesValues1) - 1), // plotOrder
 | 
					
						
							|  |  |  |     $dataSeriesLabels1, // plotLabel
 | 
					
						
							|  |  |  |     $xAxisTickValues1, // plotCategory
 | 
					
						
							|  |  |  |     $dataSeriesValues1          // plotValues
 | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set up a layout object for the Pie chart
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $layout1 = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | $layout1->setShowVal(true); | 
					
						
							|  |  |  | $layout1->setShowPercent(true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the series in the plot area
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $plotArea1 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($layout1, [$series1]); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | //	Set the chart legend
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $legend1 = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $title1 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Pie Chart'); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | //	Create the chart
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $chart1 = new \PhpOffice\PhpSpreadsheet\Chart( | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  |     'chart1', // name
 | 
					
						
							|  |  |  |     $title1, // title
 | 
					
						
							|  |  |  |     $legend1, // legend
 | 
					
						
							|  |  |  |     $plotArea1, // plotArea
 | 
					
						
							|  |  |  |     true, // plotVisibleOnly
 | 
					
						
							|  |  |  |     0, // displayBlanksAs
 | 
					
						
							|  |  |  |     null, // xAxisLabel
 | 
					
						
							|  |  |  |     null   // yAxisLabel		- Pie charts don't have a Y-Axis
 | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the position where the chart should appear in the worksheet
 | 
					
						
							|  |  |  | $chart1->setTopLeftPosition('A7'); | 
					
						
							|  |  |  | $chart1->setBottomRightPosition('H20'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Add the chart to the worksheet
 | 
					
						
							|  |  |  | $worksheet->addChart($chart1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the Labels for each data series we want to plot
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $dataSeriesLabels2 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), //	2011
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | //	Set the X-Axis Labels
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $xAxisTickValues2 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), //	Q1 to Q4
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | //	Set the Data values for each data series we want to plot
 | 
					
						
							|  |  |  | //		Datatype
 | 
					
						
							|  |  |  | //		Cell reference for data
 | 
					
						
							|  |  |  | //		Format Code
 | 
					
						
							|  |  |  | //		Number of datapoints in series
 | 
					
						
							|  |  |  | //		Data values
 | 
					
						
							|  |  |  | //		Data Marker
 | 
					
						
							|  |  |  | $dataSeriesValues2 = [ | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  |     new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Build the dataseries
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $series2 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( | 
					
						
							|  |  |  |     \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_DONUTCHART, // plotType
 | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  |     null, // plotGrouping (Donut charts don't have any grouping)
 | 
					
						
							|  |  |  |     range(0, count($dataSeriesValues2) - 1), // plotOrder
 | 
					
						
							|  |  |  |     $dataSeriesLabels2, // plotLabel
 | 
					
						
							|  |  |  |     $xAxisTickValues2, // plotCategory
 | 
					
						
							|  |  |  |     $dataSeriesValues2        // plotValues
 | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set up a layout object for the Pie chart
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $layout2 = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | $layout2->setShowVal(true); | 
					
						
							|  |  |  | $layout2->setShowCatName(true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the series in the plot area
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $plotArea2 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($layout2, [$series2]); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $title2 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Donut Chart'); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | //	Create the chart
 | 
					
						
							| 
									
										
										
										
											2016-08-31 17:18:12 +00:00
										 |  |  | $chart2 = new \PhpOffice\PhpSpreadsheet\Chart( | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  |     'chart2', // name
 | 
					
						
							|  |  |  |     $title2, // title
 | 
					
						
							|  |  |  |     null, // legend
 | 
					
						
							|  |  |  |     $plotArea2, // plotArea
 | 
					
						
							|  |  |  |     true, // plotVisibleOnly
 | 
					
						
							|  |  |  |     0, // displayBlanksAs
 | 
					
						
							|  |  |  |     null, // xAxisLabel
 | 
					
						
							|  |  |  |     null   // yAxisLabel		- Like Pie charts, Donut charts don't have a Y-Axis
 | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Set the position where the chart should appear in the worksheet
 | 
					
						
							|  |  |  | $chart2->setTopLeftPosition('I7'); | 
					
						
							|  |  |  | $chart2->setBottomRightPosition('P20'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //	Add the chart to the worksheet
 | 
					
						
							|  |  |  | $worksheet->addChart($chart2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Save Excel 2007 file
 | 
					
						
							|  |  |  | $filename = $helper->getFilename(__FILE__); | 
					
						
							| 
									
										
										
										
											2016-10-06 11:39:10 +00:00
										 |  |  | $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); | 
					
						
							| 
									
										
										
										
											2016-08-31 16:15:54 +00:00
										 |  |  | $writer->setIncludeCharts(true); | 
					
						
							|  |  |  | $callStartTime = microtime(true); | 
					
						
							|  |  |  | $writer->save($filename); | 
					
						
							|  |  |  | $helper->logWrite($writer, $filename, $callStartTime); |