如果您修改文件PhpWord\Writer\Word2007\Part\Chart.php,您可以更改图表的颜色。
添加此代码:
if ($type == 'pie')
{
$elementColors = $this->element->getColors();
if($elementColors !== null)
{
$colorIndex = 0;
foreach ($elementColors as $color)
{
$xmlWriter->startElement('c:dPt');
$xmlWriter->writeElementBlock('c:idx', 'val', $colorIndex);
$xmlWriter->startElement('c:spPr');
$xmlWriter->startElement('a:solidFill');
$xmlWriter->writeElementBlock('a:srgbClr', 'val', $color);
$xmlWriter->endElement(); // a:solidFill
$xmlWriter->endElement(); // c:spPr
$xmlWriter->endElement(); // c:dPt
$colorIndex++;
}
}
}
else if($type == 'area')
{
$color = $seriesItem['color'];
if($color!=null)
{
$xmlWriter->startElement('c:spPr');
$xmlWriter->startElement('a:solidFill');
$xmlWriter->startElement('a:srgbClr');
$xmlWriter->writeAttribute('val',$color);
$xmlWriter->endElement();
$xmlWriter->endElement();
$xmlWriter->endElement();
}
}
else
{
$color = $seriesItem['color'];
if($color!=null)
{
$xmlWriter->startElement('c:spPr');
$xmlWriter->startElement('a:ln');
$xmlWriter->writeAttribute('w', 20000);
$xmlWriter->startElement('a:solidFill');
$xmlWriter->startElement('a:srgbClr');
$xmlWriter->writeAttribute('val',$color);
$xmlWriter->endElement();
$xmlWriter->endElement();
$xmlWriter->endElement();
$xmlWriter->endElement();
}
}
在这之后:
if ($scatter === true) {
$this->writeSeriesItem($xmlWriter, 'xVal', $categories);
$this->writeSeriesItem($xmlWriter, 'yVal', $values);
} else {
$this->writeSeriesItem($xmlWriter, 'cat', $categories,$name);
$this->writeSeriesItem($xmlWriter, 'val', $values);
你必须定义你的颜色。我在 PhpWord\Element\Chart.php 类中定义了这个。
我希望这对你有帮助。