[英]PhpPresentation Axis Label Format
I am trying to format the labels on the y axis我正在尝试格式化 y 轴上的标签
$axis->setFormatCode('#.0\%');
This is providing no change but I have confirmed that the format code is setting properly by adding an echo of getFormatCode();
这没有提供任何更改,但我已通过添加getFormatCode();
的回显来确认格式代码设置正确。 in the writer class.在作家 class 中。
I have tested and this will work as expected if you change Writer\PowerPoint2007\PptCharts.php https://github.com/PHPOffice/PHPPresentation/blob/develop/src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php#L2265我已经测试过,如果您更改 Writer\PowerPoint2007\PptCharts.php https://github.com/PHPOffice/PHPPresentation/blob/develop/src/PhpPresentation/Writer/Lpt2007/#php ,这将按预期工作
$objWriter->writeAttribute('sourceLinked', '0');
Can anyone tell me why that is and more importantly how do I get the Y axis to format value labels with '%'?谁能告诉我为什么会这样,更重要的是如何让 Y 轴用 '%' 格式化值标签?
edit: adding code编辑:添加代码
public function configure_axis($axis, $title='', $visible=true,
$formatCode=null){
$axis = strtolower($axis);
// get the axis
switch($axis){
case 'x':
case 'categorical':
$axis = $this->shape->getPlotArea()->getAxisX();
break;
case 'y':
$axis = $this->shape->getPlotArea()->getAxisY();
break;
default:
throw new Exception('Invalid axis');
}
$axis->setTitle($title);
$axis->setIsVisible($visible);
if(isset($formatCode)){
$axis->setFormatCode($formatCode);
}
}
Could you show your code and tell which version of PhpPresentation you are using?你能展示你的代码并告诉你正在使用哪个版本的 PhpPresentation 吗?
Because for me the next formatting setFormatCode('#.0\%')
is works fine.因为对我来说,下一个格式setFormatCode('#.0\%')
可以正常工作。
Here is an example:这是一个例子:
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpPresentation\IOFactory;
use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\Shape\Chart\Series;
use PhpOffice\PhpPresentation\Shape\Chart\Type\Area;
$seriesData = [
'Monday' => 12,
'Tuesday' => 15,
'Wednesday' => 13,
'Thursday' => 17,
'Friday' => 14,
'Saturday' => 9,
'Sunday' => 7
];
$objPHPPowerPoint = new PhpPresentation();
$currentSlide = $objPHPPowerPoint->getActiveSlide();
$areaChart = new Area();
$areaChart->addSeries(new Series('Downloads', $seriesData));
$shape = $currentSlide->createChartShape();
$shape->getTitle()->setVisible(false);
$shape->getLegend()->setVisible(false);
$shape->setResizeProportional(false)
->setWidth(800)
->setHeight(500)
->setOffsetX(50)
->setOffsetY(50);
$shape->getPlotArea()->setType($areaChart);
$shape->getPlotArea()->getAxisY()->setFormatCode('#.0\%');
$oWriterPPTX = IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');
$oWriterPPTX->save(__DIR__ . '/demo.pptx');
And result:结果:
And here's the second result for the column chart (PhpOffice\PhpPresentation\Shape\Chart\Type\Bar):这是柱形图的第二个结果 (PhpOffice\PhpPresentation\Shape\Chart\Type\Bar):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.