PHPExcel 图表轴选项设置 Maximium

PHPExcel Chart Axis Options set Maximium

我读过这个 post PHPExcel Chart Axis Options set Minimum 我的问题是这样的,我想将最大值(固定)设置到轴中,独立于图表中的值。

我已经阅读了很多post,但我无法得到我的问题的答案。

通过进入轴格式选项并为该轴的最大值设置固定值 max_value_scale(即 20),问题可能是 Excel 中的 "Fixed"。我可以在 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);

我渲染这张图片:

但我需要这样的东西:


我的图表创建正常,我已经验证了很多posts和论坛,但我找不到解决这个问题的方法。

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

就像您提到的 Whosebug 问题一样,PHPExcel(自 1.8.1 起)无法以编程方式更改 y-axis 图表比例。 y-axis 图表比例是根据图表数据自动生成的,您无法控制它。

pChart 和 PHPExcel 是独立的库。不幸的是,pChart 中可用的调整比例的配置在 PHPExcel 中不可用。因此,使用 PHPExcel,您无法 auto-generate 配置 y-axis 的图表,正如您所要求的那样。

如果您设置了包含具有自定义 maximum/minimum y-axis 比例的 chart-image,您可以渲染您的 pChart 图像,然后 insert those images into a Worksheet via PHPExcel。明显的缺点是最终电子表格文档的用户将无法自行配置 chart-image(因为它们是图像,而不是图表)。

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 版本或在您的版本之上应用补丁。