PHPSpreadsheet,如何为复合图中的每个系列设置不同的布局?

问题描述 投票:0回答:1

我正在尝试使用 PHP 库 PHPSpreadSheet 在 Excel 中创建图表。但是,当我生成包含多种类型的图表的复合图表时,我得到了重叠的数据标签。 堆积条形图+面积图

在代码中我们可以设置数据标签可见/不可见,但它使每个标签可见/不可见。我只想隐藏面积图的标签。

    $layout = new Layout();
    $layout->setShowVal(true);
    // $layout->setDLblPos('inBase');
    // Set the series in the plot area
    $plotArea = new PlotArea($layout, [$series, $series3]);

有什么建议吗?

我正在尝试使用 PHP 库 PHPSpreadSheet 在 Excel 中创建图表。但是,当我生成包含多种类型的图表的复合图表时,我得到了重叠的数据标签。

在代码中我们可以设置数据标签可见/不可见,但它使每个标签可见/不可见。我只想隐藏面积图的标签。

php excel charts phpexcel phpspreadsheet
1个回答
0
投票

要实现此目的,您需要按系列控制数据标签的可见性,因为

setShowVal(true)
适用于图表中的所有系列。由于您的目标是仅隐藏面积图系列的标签,因此您必须单独修改每个系列的属性。

// Create Layout instance
$layout = new Layout();

// Set data labels visibility for all series
$layout->setShowVal(true);  // This will make data labels visible for all series by default

// Customize data labels for specific series
$series->setShowVal(true);  // For non-area chart series
$series3->setShowVal(false); // Assuming $series3 is your area chart series

// Set the series in the plot area
$plotArea = new PlotArea($layout, [$series, $series3]);
© www.soinside.com 2019 - 2024. All rights reserved.