Merge pull request #4908 from oleibman/issue661

No lumOff for Radar Charts
This commit is contained in:
oleibman
2026-06-13 03:35:32 +00:00
committed by GitHub
3 changed files with 56 additions and 3 deletions
Binary file not shown.
+8 -3
View File
@@ -304,6 +304,8 @@ class Chart extends WriterPart
$objWriter->endElement(); // c:legend
}
private string $chartType = '';
/**
* Write Chart Plot Area.
*/
@@ -327,6 +329,7 @@ class Chart extends WriterPart
$chartType = null;
foreach ($chartTypes as $chartType) {
$objWriter->startElement('c:' . $chartType);
$this->chartType = $chartType;
$groupCount = $plotArea->getPlotGroupCount();
$plotGroup = null;
@@ -1875,9 +1878,11 @@ class Chart extends WriterPart
$objWriter->startElement('a:lumMod');
$objWriter->writeAttribute('val', ChartColor::alphaToXml($brightness));
$objWriter->endElement(); // a:lumMod
$objWriter->startElement('a:lumOff');
$objWriter->writeAttribute('val', ChartColor::alphaToXml($lumOff));
$objWriter->endElement(); // a:lumOff
if ($this->chartType !== DataSeries::TYPE_RADARCHART) {
$objWriter->startElement('a:lumOff');
$objWriter->writeAttribute('val', ChartColor::alphaToXml($lumOff));
$objWriter->endElement(); // a:lumOff
}
}
$objWriter->endElement(); //a:srgbClr/schemeClr/prstClr
if ($solidFill) {
@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Chart;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
use PhpOffice\PhpSpreadsheet\Shared\File;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
use PHPUnit\Framework\TestCase;
class Charts32Radar4Test extends TestCase
{
// These tests can only be performed by examining xml.
// They are based on sample 32readwriteRadarChart4.
private string $outputFileName = '';
protected function tearDown(): void
{
if ($this->outputFileName !== '') {
unlink($this->outputFileName);
$this->outputFileName = '';
}
}
public function test1LummodNoLumoff(): void
{
$infile = 'samples/templates/32readwriteRadarChart4.xlsx';
$reader = new XlsxReader();
$reader->setIncludeCharts(true);
$spreadsheet = $reader->load($infile);
$writer = new XlsxWriter($spreadsheet);
$writer->setIncludeCharts(true);
$this->outputFileName = File::temporaryFilename();
$writer->save($this->outputFileName);
$spreadsheet->disconnectWorksheets();
$file = 'zip://';
$file .= $this->outputFileName;
$file .= '#xl/charts/chart2.xml';
$data = file_get_contents($file);
self::assertNotFalse($data);
self::assertSame(2, substr_count($data, '<a:lumMod'));
self::assertSame(2, substr_count($data, '<a:lum'), 'should be no lumOff');
}
}