PHPExcel图表轴选项设置最大值

时间:2015-04-20 19:44:23

标签: php codeigniter charts phpexcel pchart

我已阅读此帖PHPExcel Chart Axis Options set Minimum,我的问题是这样的,我想将最大值(固定)设置到轴中,与绘制的值无关。

我看过很多帖子,但我无法得到问题的答案。

通过进入Axis格式选项并为该轴的最大值设置max_value_scale(即20)的固定值,可以在Excel中“修复”该问题。我可以在PHPExcel中更改此格式选项吗?

当我使用pChart渲染图表时(在我的系统提供的另一个选项中),我这样做了

$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>$max_value_scale+1));
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"LabelSkip"=>1,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE,"Mode"=>SCALE_MODE_MANUAL,"ManualScale"=>$AxisBoundaries,"MinDivHeight"=>50);

我渲染此图片:rendered

但我需要这样的事情:needed


我的图表是正常创建的,我一直在验证很多帖子和论坛,但我找不到解决这个问题的方法。

$chart = new PHPExcel_Chart(
    'chart1',       // name
    $title,         // title
    $legend,        // legend
    $plotarea,      // plotArea
    true,           // plotVisibleOnly
    0,              // displayBlanksAs
    $xAxisLabel,    // xAxisLabel
    $yAxisLabel     // yAxisLabel
);

2 个答案:

答案 0 :(得分:2)

PHPExcel中存在一个由我的提交修复的错误:https://github.com/PHPOffice/PHPExcel/commit/1a237573f9127a02388f4e306732122b39d1ea49

用法示例(100是最大值):

$axis =  new PHPExcel_Chart_Axis();
$axis->setAxisOptionsProperties('nextTo', null, null, null, null, null, null, 100);

$chart = new PHPExcel_Chart('chart' . $locTL, $title, $legend, $pa, true, 0, NULL, NULL, $axis);

安装修复此错误的PHPExcel版本或在您的版本之上应用补丁。

答案 1 :(得分:1)

与您提及的StackOverflow问题类似,PHPExcel(从1.8.1开始)无法以编程方式更改y轴图表比例。 y轴图表比例是从图表的数据自动生成的,您无法控制它。

pChart和PHPExcel是独立的库。遗憾的是,在PHPExcel中无法使用pChart中可用的调整比例的配置。因此,使用PHPExcel,您无法自动生成按照您的要求配置y轴的图表。

如果您设置了包含自定义最大/最小y轴刻度的图表图像,则可以渲染pChart图像,然后insert those images into a Worksheet via PHPExcel。明显的缺点是,最终电子表格文档的用户将无法自行配置图表图像(因为它们是图像,而不是图表)。