GridlinesLineStyleTest.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Chart;
  3. use PhpOffice\PhpSpreadsheet\Chart\Axis;
  4. use PhpOffice\PhpSpreadsheet\Chart\Chart;
  5. use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
  6. use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
  7. use PhpOffice\PhpSpreadsheet\Chart\GridLines;
  8. use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend;
  9. use PhpOffice\PhpSpreadsheet\Chart\PlotArea;
  10. use PhpOffice\PhpSpreadsheet\Chart\Properties;
  11. use PhpOffice\PhpSpreadsheet\Chart\Title;
  12. use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
  13. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  14. use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
  15. use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
  16. class GridlinesLineStyleTest extends AbstractFunctional
  17. {
  18. public function readCharts(XlsxReader $reader): void
  19. {
  20. $reader->setIncludeCharts(true);
  21. }
  22. public function writeCharts(XlsxWriter $writer): void
  23. {
  24. $writer->setIncludeCharts(true);
  25. }
  26. public function testLineStyles(): void
  27. {
  28. $spreadsheet = new Spreadsheet();
  29. $worksheet = $spreadsheet->getActiveSheet();
  30. $worksheet->fromArray(
  31. [
  32. ['', 2010, 2011, 2012],
  33. ['Q1', 12, 15, 21],
  34. ['Q2', 56, 73, 86],
  35. ['Q3', 52, 61, 69],
  36. ['Q4', 30, 32, 0],
  37. ]
  38. );
  39. // Set the Labels for each data series we want to plot
  40. // Datatype
  41. // Cell reference for data
  42. // Format Code
  43. // Number of datapoints in series
  44. // Data values
  45. // Data Marker
  46. $dataSeriesLabels = [
  47. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$B$1', null, 1), // 2010
  48. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$C$1', null, 1), // 2011
  49. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$D$1', null, 1), // 2012
  50. ];
  51. // Set the X-Axis Labels
  52. // Datatype
  53. // Cell reference for data
  54. // Format Code
  55. // Number of datapoints in series
  56. // Data values
  57. // Data Marker
  58. $xAxisTickValues = [
  59. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4
  60. ];
  61. // Set the Data values for each data series we want to plot
  62. // Datatype
  63. // Cell reference for data
  64. // Format Code
  65. // Number of datapoints in series
  66. // Data values
  67. // Data Marker
  68. $dataSeriesValues = [
  69. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$B$2:$B$5', null, 4),
  70. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C$2:$C$5', null, 4),
  71. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$D$2:$D$5', null, 4),
  72. ];
  73. // Build the dataseries
  74. $series = new DataSeries(
  75. DataSeries::TYPE_LINECHART, // plotType
  76. DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping
  77. range(0, count($dataSeriesValues) - 1), // plotOrder
  78. $dataSeriesLabels, // plotLabel
  79. $xAxisTickValues, // plotCategory
  80. $dataSeriesValues // plotValues
  81. );
  82. // Set the series in the plot area
  83. $plotArea = new PlotArea(null, [$series]);
  84. // Set the chart legend
  85. $legend = new ChartLegend(ChartLegend::POSITION_TOPRIGHT, null, false);
  86. $title = new Title('Test %age-Stacked Area Chart');
  87. $yAxisLabel = new Title('Value ($k)');
  88. $majorGridlines = new GridLines();
  89. $width = 2;
  90. $compound = Properties::LINE_STYLE_COMPOUND_THICKTHIN;
  91. $dash = Properties::LINE_STYLE_DASH_ROUND_DOT;
  92. $cap = Properties::LINE_STYLE_CAP_ROUND;
  93. $join = Properties::LINE_STYLE_JOIN_MITER;
  94. $headArrowType = Properties::LINE_STYLE_ARROW_TYPE_DIAMOND;
  95. $headArrowSize = (string) Properties::LINE_STYLE_ARROW_SIZE_2;
  96. $endArrowType = Properties::LINE_STYLE_ARROW_TYPE_OVAL;
  97. $endArrowSize = (string) Properties::LINE_STYLE_ARROW_SIZE_3;
  98. $majorGridlines->setLineStyleProperties(
  99. $width,
  100. $compound,
  101. $dash,
  102. $cap,
  103. $join,
  104. $headArrowType,
  105. $headArrowSize,
  106. $endArrowType,
  107. $endArrowSize
  108. );
  109. $minorGridlines = new GridLines();
  110. $minorGridlines->setLineColorProperties('00FF00', 30, 'srgbClr');
  111. self::assertEquals($width, $majorGridlines->getLineStyleProperty('width'));
  112. self::assertEquals($compound, $majorGridlines->getLineStyleProperty('compound'));
  113. self::assertEquals($dash, $majorGridlines->getLineStyleProperty('dash'));
  114. self::assertEquals($cap, $majorGridlines->getLineStyleProperty('cap'));
  115. self::assertEquals($join, $majorGridlines->getLineStyleProperty('join'));
  116. self::assertEquals($headArrowType, $majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
  117. self::assertEquals($headArrowSize, $majorGridlines->getLineStyleProperty(['arrow', 'head', 'size']));
  118. self::assertEquals($endArrowType, $majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
  119. self::assertEquals($endArrowSize, $majorGridlines->getLineStyleProperty(['arrow', 'end', 'size']));
  120. self::assertEquals('sm', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'w']));
  121. self::assertEquals('med', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'len']));
  122. self::assertEquals('sm', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'w']));
  123. self::assertEquals('lg', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'len']));
  124. self::assertEquals('sm', $majorGridlines->getLineStyleArrowWidth('end'));
  125. self::assertEquals('lg', $majorGridlines->getLineStyleArrowLength('end'));
  126. self::assertEquals('lg', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
  127. self::assertSame('00FF00', $minorGridlines->getLineColorProperty('value'));
  128. self::assertSame(30, $minorGridlines->getLineColorProperty('alpha'));
  129. self::assertSame('srgbClr', $minorGridlines->getLineColorProperty('type'));
  130. // Create the chart
  131. $yAxis = new Axis();
  132. $yAxis->setMajorGridlines($majorGridlines);
  133. $yAxis->setMinorGridlines($minorGridlines);
  134. $chart = new Chart(
  135. 'chart1', // name
  136. $title, // title
  137. $legend, // legend
  138. $plotArea, // plotArea
  139. true, // plotVisibleOnly
  140. DataSeries::EMPTY_AS_GAP, // displayBlanksAs
  141. null, // xAxisLabel
  142. $yAxisLabel, // yAxisLabel
  143. null, // xAxis
  144. $yAxis // yAxis
  145. );
  146. $yAxis2 = $chart->getChartAxisY();
  147. $majorGridlines2 = $yAxis2->getMajorGridlines();
  148. self::assertNotNull($majorGridlines2);
  149. self::assertEquals($width, $majorGridlines2->getLineStyleProperty('width'));
  150. self::assertEquals($compound, $majorGridlines2->getLineStyleProperty('compound'));
  151. self::assertEquals($dash, $majorGridlines2->getLineStyleProperty('dash'));
  152. self::assertEquals($cap, $majorGridlines2->getLineStyleProperty('cap'));
  153. self::assertEquals($join, $majorGridlines2->getLineStyleProperty('join'));
  154. self::assertEquals($headArrowType, $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'type']));
  155. self::assertEquals($headArrowSize, $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'size']));
  156. self::assertEquals($endArrowType, $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'type']));
  157. self::assertEquals($endArrowSize, $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'size']));
  158. self::assertEquals('sm', $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'w']));
  159. self::assertEquals('med', $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'len']));
  160. self::assertEquals('sm', $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'w']));
  161. self::assertEquals('lg', $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'len']));
  162. $minorGridlines2 = $yAxis2->getMinorGridlines();
  163. self::assertNotNull($minorGridlines2);
  164. self::assertSame('00FF00', $minorGridlines2->getLineColorProperty('value'));
  165. self::assertSame(30, $minorGridlines2->getLineColorProperty('alpha'));
  166. self::assertSame('srgbClr', $minorGridlines2->getLineColorProperty('type'));
  167. // Set the position where the chart should appear in the worksheet
  168. $chart->setTopLeftPosition('A7');
  169. $chart->setBottomRightPosition('H20');
  170. // Add the chart to the worksheet
  171. $worksheet->addChart($chart);
  172. /** @var callable */
  173. $callableReader = [$this, 'readCharts'];
  174. /** @var callable */
  175. $callableWriter = [$this, 'writeCharts'];
  176. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter);
  177. $spreadsheet->disconnectWorksheets();
  178. $sheet = $reloadedSpreadsheet->getActiveSheet();
  179. $charts2 = $sheet->getChartCollection();
  180. self::assertCount(1, $charts2);
  181. $chart2 = $charts2[0];
  182. self::assertNotNull($chart2);
  183. self::assertSame('A7', $chart2->getTopLeftCell());
  184. self::assertSame('H20', $chart2->getBottomRightCell());
  185. self::assertSame($sheet, $chart2->getWorksheet());
  186. $yAxis3 = $chart2->getChartAxisY();
  187. $majorGridlines3 = $yAxis3->getMajorGridlines();
  188. self::assertNotNull($majorGridlines3);
  189. self::assertEquals($width, $majorGridlines3->getLineStyleProperty('width'));
  190. self::assertEquals($compound, $majorGridlines3->getLineStyleProperty('compound'));
  191. self::assertEquals($dash, $majorGridlines3->getLineStyleProperty('dash'));
  192. self::assertEquals($cap, $majorGridlines3->getLineStyleProperty('cap'));
  193. self::assertEquals($join, $majorGridlines3->getLineStyleProperty('join'));
  194. self::assertEquals($headArrowType, $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'type']));
  195. self::assertEquals($endArrowType, $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'type']));
  196. self::assertEquals('sm', $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'w']));
  197. self::assertEquals('med', $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'len']));
  198. self::assertEquals('sm', $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'w']));
  199. self::assertEquals('lg', $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'len']));
  200. $minorGridlines3 = $yAxis3->getMinorGridlines();
  201. self::assertNotNull($minorGridlines3);
  202. self::assertSame('00FF00', $minorGridlines3->getLineColorProperty('value'));
  203. self::assertSame(30, $minorGridlines3->getLineColorProperty('alpha'));
  204. self::assertSame('srgbClr', $minorGridlines3->getLineColorProperty('type'));
  205. $reloadedSpreadsheet->disconnectWorksheets();
  206. }
  207. public function testLineStylesDeprecated(): void
  208. {
  209. $spreadsheet = new Spreadsheet();
  210. $worksheet = $spreadsheet->getActiveSheet();
  211. $worksheet->fromArray(
  212. [
  213. ['', 2010, 2011, 2012],
  214. ['Q1', 12, 15, 21],
  215. ['Q2', 56, 73, 86],
  216. ['Q3', 52, 61, 69],
  217. ['Q4', 30, 32, 0],
  218. ]
  219. );
  220. // Set the Labels for each data series we want to plot
  221. // Datatype
  222. // Cell reference for data
  223. // Format Code
  224. // Number of datapoints in series
  225. // Data values
  226. // Data Marker
  227. $dataSeriesLabels = [
  228. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$B$1', null, 1), // 2010
  229. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$C$1', null, 1), // 2011
  230. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$D$1', null, 1), // 2012
  231. ];
  232. // Set the X-Axis Labels
  233. // Datatype
  234. // Cell reference for data
  235. // Format Code
  236. // Number of datapoints in series
  237. // Data values
  238. // Data Marker
  239. $xAxisTickValues = [
  240. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4
  241. ];
  242. // Set the Data values for each data series we want to plot
  243. // Datatype
  244. // Cell reference for data
  245. // Format Code
  246. // Number of datapoints in series
  247. // Data values
  248. // Data Marker
  249. $dataSeriesValues = [
  250. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$B$2:$B$5', null, 4),
  251. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C$2:$C$5', null, 4),
  252. new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$D$2:$D$5', null, 4),
  253. ];
  254. // Build the dataseries
  255. $series = new DataSeries(
  256. DataSeries::TYPE_LINECHART, // plotType
  257. DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping
  258. range(0, count($dataSeriesValues) - 1), // plotOrder
  259. $dataSeriesLabels, // plotLabel
  260. $xAxisTickValues, // plotCategory
  261. $dataSeriesValues // plotValues
  262. );
  263. // Set the series in the plot area
  264. $plotArea = new PlotArea(null, [$series]);
  265. // Set the chart legend
  266. $legend = new ChartLegend(ChartLegend::POSITION_TOPRIGHT, null, false);
  267. $title = new Title('Test %age-Stacked Area Chart');
  268. $yAxisLabel = new Title('Value ($k)');
  269. $majorGridlines = new GridLines();
  270. $width = 2;
  271. $compound = Properties::LINE_STYLE_COMPOUND_THICKTHIN;
  272. $dash = Properties::LINE_STYLE_DASH_ROUND_DOT;
  273. $cap = Properties::LINE_STYLE_CAP_ROUND;
  274. $join = Properties::LINE_STYLE_JOIN_MITER;
  275. $headArrowType = Properties::LINE_STYLE_ARROW_TYPE_DIAMOND;
  276. $headArrowSize = (string) Properties::LINE_STYLE_ARROW_SIZE_2;
  277. $endArrowType = Properties::LINE_STYLE_ARROW_TYPE_OVAL;
  278. $endArrowSize = (string) Properties::LINE_STYLE_ARROW_SIZE_3;
  279. $majorGridlines->setLineStyleProperties(
  280. $width,
  281. $compound,
  282. $dash,
  283. $cap,
  284. $join,
  285. $headArrowType,
  286. $headArrowSize,
  287. $endArrowType,
  288. $endArrowSize
  289. );
  290. $minorGridlines = new GridLines();
  291. $minorGridlines->setLineColorProperties('00FF00', 30, 'srgbClr');
  292. self::assertEquals($width, $majorGridlines->getLineStyleProperty('width'));
  293. self::assertEquals($compound, $majorGridlines->getLineStyleProperty('compound'));
  294. self::assertEquals($dash, $majorGridlines->getLineStyleProperty('dash'));
  295. self::assertEquals($cap, $majorGridlines->getLineStyleProperty('cap'));
  296. self::assertEquals($join, $majorGridlines->getLineStyleProperty('join'));
  297. self::assertEquals($headArrowType, $majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
  298. self::assertEquals($headArrowSize, $majorGridlines->getLineStyleProperty(['arrow', 'head', 'size']));
  299. self::assertEquals($endArrowType, $majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
  300. self::assertEquals($endArrowSize, $majorGridlines->getLineStyleProperty(['arrow', 'end', 'size']));
  301. self::assertEquals('sm', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'w']));
  302. self::assertEquals('med', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'len']));
  303. self::assertEquals('sm', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'w']));
  304. self::assertEquals('lg', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'len']));
  305. self::assertEquals('sm', $majorGridlines->getLineStyleArrowWidth('end'));
  306. self::assertEquals('lg', $majorGridlines->getLineStyleArrowLength('end'));
  307. self::assertEquals('lg', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
  308. self::assertSame('00FF00', $minorGridlines->getLineColorProperty('value'));
  309. self::assertSame(30, $minorGridlines->getLineColorProperty('alpha'));
  310. self::assertSame('srgbClr', $minorGridlines->getLineColorProperty('type'));
  311. // Create the chart
  312. $chart = new Chart(
  313. 'chart1', // name
  314. $title, // title
  315. $legend, // legend
  316. $plotArea, // plotArea
  317. true, // plotVisibleOnly
  318. DataSeries::EMPTY_AS_GAP, // displayBlanksAs
  319. null, // xAxisLabel
  320. $yAxisLabel, // yAxisLabel
  321. null, // xAxis
  322. null, // yAxis
  323. $majorGridlines,
  324. $minorGridlines // minorGridlines
  325. );
  326. $majorGridlines2 = $chart->getMajorGridlines();
  327. self::assertNotNull($majorGridlines2);
  328. self::assertEquals($width, $majorGridlines2->getLineStyleProperty('width'));
  329. self::assertEquals($compound, $majorGridlines2->getLineStyleProperty('compound'));
  330. self::assertEquals($dash, $majorGridlines2->getLineStyleProperty('dash'));
  331. self::assertEquals($cap, $majorGridlines2->getLineStyleProperty('cap'));
  332. self::assertEquals($join, $majorGridlines2->getLineStyleProperty('join'));
  333. self::assertEquals($headArrowType, $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'type']));
  334. self::assertEquals($headArrowSize, $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'size']));
  335. self::assertEquals($endArrowType, $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'type']));
  336. self::assertEquals($endArrowSize, $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'size']));
  337. self::assertEquals('sm', $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'w']));
  338. self::assertEquals('med', $majorGridlines2->getLineStyleProperty(['arrow', 'head', 'len']));
  339. self::assertEquals('sm', $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'w']));
  340. self::assertEquals('lg', $majorGridlines2->getLineStyleProperty(['arrow', 'end', 'len']));
  341. $minorGridlines2 = $chart->getMinorGridlines();
  342. self::assertNotNull($minorGridlines2);
  343. self::assertSame('00FF00', $minorGridlines2->getLineColorProperty('value'));
  344. self::assertSame(30, $minorGridlines2->getLineColorProperty('alpha'));
  345. self::assertSame('srgbClr', $minorGridlines2->getLineColorProperty('type'));
  346. // Set the position where the chart should appear in the worksheet
  347. $chart->setTopLeftPosition('A7');
  348. $chart->setBottomRightPosition('H20');
  349. // Add the chart to the worksheet
  350. $worksheet->addChart($chart);
  351. /** @var callable */
  352. $callableReader = [$this, 'readCharts'];
  353. /** @var callable */
  354. $callableWriter = [$this, 'writeCharts'];
  355. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter);
  356. $spreadsheet->disconnectWorksheets();
  357. $sheet = $reloadedSpreadsheet->getActiveSheet();
  358. $charts2 = $sheet->getChartCollection();
  359. self::assertCount(1, $charts2);
  360. $chart2 = $charts2[0];
  361. self::assertNotNull($chart2);
  362. $majorGridlines3 = $chart2->getMajorGridlines();
  363. self::assertNotNull($majorGridlines3);
  364. self::assertEquals($width, $majorGridlines3->getLineStyleProperty('width'));
  365. self::assertEquals($compound, $majorGridlines3->getLineStyleProperty('compound'));
  366. self::assertEquals($dash, $majorGridlines3->getLineStyleProperty('dash'));
  367. self::assertEquals($cap, $majorGridlines3->getLineStyleProperty('cap'));
  368. self::assertEquals($join, $majorGridlines3->getLineStyleProperty('join'));
  369. self::assertEquals($headArrowType, $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'type']));
  370. self::assertEquals($endArrowType, $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'type']));
  371. self::assertEquals('sm', $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'w']));
  372. self::assertEquals('med', $majorGridlines3->getLineStyleProperty(['arrow', 'head', 'len']));
  373. self::assertEquals('sm', $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'w']));
  374. self::assertEquals('lg', $majorGridlines3->getLineStyleProperty(['arrow', 'end', 'len']));
  375. $minorGridlines3 = $chart2->getMinorGridlines();
  376. self::assertNotNull($minorGridlines3);
  377. self::assertSame('00FF00', $minorGridlines3->getLineColorProperty('value'));
  378. self::assertSame(30, $minorGridlines3->getLineColorProperty('alpha'));
  379. self::assertSame('srgbClr', $minorGridlines3->getLineColorProperty('type'));
  380. $reloadedSpreadsheet->disconnectWorksheets();
  381. }
  382. }