1、打开文件PHPExcel\Writer\Excel2007\Chart.php
2、找到函数_writePlotGroup
3、在
foreach($plotSeriesOrder as $plotSeriesIdx => $plotSeriesRef) {
之前添加代码
$colorNDX=array(); $colorNDX[0] = "ff33cc"; $colorNDX[1] = "ffff00"; $colorNDX[2] = "ffc000"; $colorNDX[3] = "00b0f0"; $colorNDX[4] = "ff0000"; $colorNDX[5] = "058beb"; $colorNDX[6] = "06eb6e"; $t =$plotGroup->getPlotValues();
4、找到
$objWriter->startElement('c:dPt');
修改代码:
if($t[$plotSeriesIdx]->getPointCount()<=7){
for($ci=0; $ci<7; ++$ci){
$objWriter->startElement('c:dPt');
$objWriter->startElement('c:idx');
$objWriter->writeAttribute('val', $ci);
$objWriter->endElement();
$objWriter->startElement('c:bubble3D');
$objWriter->writeAttribute('val', 0);
$objWriter->endElement();
$objWriter->startElement('c:spPr');
$objWriter->startElement('a:solidFill');
$objWriter->startElement('a:srgbClr');
$objWriter->writeAttribute('val', $colorNDX[$ci]);
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
}
}else{
$objWriter->startElement('c:dPt');
$objWriter->startElement('c:idx');
$objWriter->writeAttribute('val', 3);
$objWriter->endElement();
$objWriter->startElement('c:bubble3D');
$objWriter->writeAttribute('val', 0);
$objWriter->endElement();
$objWriter->startElement('c:spPr');
$objWriter->startElement('a:solidFill');
$objWriter->startElement('a:srgbClr');
$objWriter->writeAttribute('val', 'FF9900');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
}
这里由于是自己定制,所以只设定了7个颜色,如果超出这个范围,则用系统自带的来处理!
效果如图所示:
[img][attach]781[/attach][/img]
