PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.7
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / phpoffice / phpspreadsheet / samples / Chart / 33_Chart_create_area.php

33_Chart_create_area.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.4.7, at vendor/phpoffice/phpspreadsheet/samples/Chart/33_Chart_create_area.php

105 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use PhpOffice\PhpSpreadsheet\Chart\Chart;
4 use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
5 use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
6 use PhpOffice\PhpSpreadsheet\Chart\Legend;
7 use PhpOffice\PhpSpreadsheet\Chart\PlotArea;
8 use PhpOffice\PhpSpreadsheet\Chart\Title;
9 use PhpOffice\PhpSpreadsheet\IOFactory;
10 use PhpOffice\PhpSpreadsheet\Spreadsheet;
11
12 require __DIR__ . '/../Header.php';
13
14 $spreadsheet = new Spreadsheet();
15 $worksheet = $spreadsheet->getActiveSheet();
16 $worksheet->fromArray(
17 [
18 ['', 2010, 2011, 2012],
19 ['Q1', 12, 15, 21],
20 ['Q2', 56, 73, 86],
21 ['Q3', 52, 61, 69],
22 ['Q4', 30, 32, 0],
23 ]
24 );
25
26 // Set the Labels for each data series we want to plot
27 // Datatype
28 // Cell reference for data
29 // Format Code
30 // Number of datapoints in series
31 // Data values
32 // Data Marker
33 $dataSeriesLabels = [
34 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$B$1', null, 1), // 2010
35 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$C$1', null, 1), // 2011
36 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$D$1', null, 1), // 2012
37 ];
38 // Set the X-Axis Labels
39 // Datatype
40 // Cell reference for data
41 // Format Code
42 // Number of datapoints in series
43 // Data values
44 // Data Marker
45 $xAxisTickValues = [
46 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4
47 ];
48 // Set the Data values for each data series we want to plot
49 // Datatype
50 // Cell reference for data
51 // Format Code
52 // Number of datapoints in series
53 // Data values
54 // Data Marker
55 $dataSeriesValues = [
56 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$B$2:$B$5', null, 4),
57 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C$2:$C$5', null, 4),
58 new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$D$2:$D$5', null, 4),
59 ];
60
61 // Build the dataseries
62 $series = new DataSeries(
63 DataSeries::TYPE_AREACHART, // plotType
64 DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping
65 range(0, count($dataSeriesValues) - 1), // plotOrder
66 $dataSeriesLabels, // plotLabel
67 $xAxisTickValues, // plotCategory
68 $dataSeriesValues // plotValues
69 );
70
71 // Set the series in the plot area
72 $plotArea = new PlotArea(null, [$series]);
73 // Set the chart legend
74 $legend = new Legend(Legend::POSITION_TOPRIGHT, null, false);
75
76 $title = new Title('Test %age-Stacked Area Chart');
77 $yAxisLabel = new Title('Value ($k)');
78
79 // Create the chart
80 $chart = new Chart(
81 'chart1', // name
82 $title, // title
83 $legend, // legend
84 $plotArea, // plotArea
85 true, // plotVisibleOnly
86 0, // displayBlanksAs
87 null, // xAxisLabel
88 $yAxisLabel // yAxisLabel
89 );
90
91 // Set the position where the chart should appear in the worksheet
92 $chart->setTopLeftPosition('A7');
93 $chart->setBottomRightPosition('H20');
94
95 // Add the chart to the worksheet
96 $worksheet->addChart($chart);
97
98 // Save Excel 2007 file
99 $filename = $helper->getFilename(__FILE__);
100 $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
101 $writer->setIncludeCharts(true);
102 $callStartTime = microtime(true);
103 $writer->save($filename);
104 $helper->logWrite($writer, $filename, $callStartTime);
105