PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.5.0
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.5.0
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_line.php

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

106 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 $dataSeriesValues[2]->setLineWidth(60000);
61
62 // Build the dataseries
63 $series = new DataSeries(
64 DataSeries::TYPE_LINECHART, // plotType
65 DataSeries::GROUPING_STACKED, // plotGrouping
66 range(0, count($dataSeriesValues) - 1), // plotOrder
67 $dataSeriesLabels, // plotLabel
68 $xAxisTickValues, // plotCategory
69 $dataSeriesValues // plotValues
70 );
71
72 // Set the series in the plot area
73 $plotArea = new PlotArea(null, [$series]);
74 // Set the chart legend
75 $legend = new Legend(Legend::POSITION_TOPRIGHT, null, false);
76
77 $title = new Title('Test Stacked Line Chart');
78 $yAxisLabel = new Title('Value ($k)');
79
80 // Create the chart
81 $chart = new Chart(
82 'chart1', // name
83 $title, // title
84 $legend, // legend
85 $plotArea, // plotArea
86 true, // plotVisibleOnly
87 0, // displayBlanksAs
88 null, // xAxisLabel
89 $yAxisLabel // yAxisLabel
90 );
91
92 // Set the position where the chart should appear in the worksheet
93 $chart->setTopLeftPosition('A7');
94 $chart->setBottomRightPosition('H20');
95
96 // Add the chart to the worksheet
97 $worksheet->addChart($chart);
98
99 // Save Excel 2007 file
100 $filename = $helper->getFilename(__FILE__);
101 $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
102 $writer->setIncludeCharts(true);
103 $callStartTime = microtime(true);
104 $writer->save($filename);
105 $helper->logWrite($writer, $filename, $callStartTime);
106