You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
2 months ago
|
<?php
|
||
|
|
||
|
namespace PhpOffice\PhpSpreadsheetTests\Chart;
|
||
|
|
||
|
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
|
||
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
|
||
|
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
|
||
|
|
||
|
class LayoutEffectsTest extends AbstractFunctional
|
||
|
{
|
||
|
private const FILENAME = 'samples/templates/32readwriteLineChart6.xlsx';
|
||
|
|
||
|
public function readCharts(XlsxReader $reader): void
|
||
|
{
|
||
|
$reader->setIncludeCharts(true);
|
||
|
}
|
||
|
|
||
|
public function writeCharts(XlsxWriter $writer): void
|
||
|
{
|
||
|
$writer->setIncludeCharts(true);
|
||
|
}
|
||
|
|
||
|
public function testLegend(): void
|
||
|
{
|
||
|
$reader = new XlsxReader();
|
||
|
$this->readCharts($reader);
|
||
|
$spreadsheet = $reader->load(self::FILENAME);
|
||
|
|
||
|
/** @var callable */
|
||
|
$callableReader = [$this, 'readCharts'];
|
||
|
/** @var callable */
|
||
|
$callableWriter = [$this, 'writeCharts'];
|
||
|
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx', $callableReader, $callableWriter);
|
||
|
$spreadsheet->disconnectWorksheets();
|
||
|
|
||
|
$sheet = $reloadedSpreadsheet->getActiveSheet();
|
||
|
$charts2 = $sheet->getChartCollection();
|
||
|
self::assertCount(1, $charts2);
|
||
|
$chart2 = $charts2[0];
|
||
|
self::assertNotNull($chart2);
|
||
|
$yAxis = $chart2->getChartAxisY();
|
||
|
$yAxisText = $yAxis->getAxisText();
|
||
|
self::assertNotNull($yAxisText);
|
||
|
self::assertSame(['value' => 'accent4', 'type' => 'schemeClr', 'alpha' => 60], $yAxisText->getGlowProperty('color'));
|
||
|
$plotArea2 = $chart2->getPlotArea();
|
||
|
self::assertNotNull($plotArea2);
|
||
|
$plotGroup2 = $plotArea2->getPlotGroup()[0];
|
||
|
$plotIndex2 = $plotGroup2->getPlotLabelByIndex(0);
|
||
|
if ($plotIndex2 === false) {
|
||
|
self::fail('Unexpected false for getPlotLabelByIndex');
|
||
|
} else {
|
||
|
$layout2 = $plotIndex2->getLabelLayout();
|
||
|
self::assertNotNull($layout2);
|
||
|
$effects2 = $layout2->getLabelEffects();
|
||
|
self::assertNotNull($effects2);
|
||
|
$shadows2 = $effects2->getShadowArray();
|
||
|
self::assertSame('outerShdw', $shadows2['effect']);
|
||
|
self::assertSame(['value' => 'FF0000', 'type' => 'srgbClr', 'alpha' => 70], $shadows2['color']);
|
||
|
}
|
||
|
|
||
|
$reloadedSpreadsheet->disconnectWorksheets();
|
||
|
}
|
||
|
}
|