图例图表上的奇怪数据集标签

时间:2016-03-11 10:32:55

标签: phpexcel

今天我正在使用phpexcel在我的文件中生成一些条形图。 尽管如此,除了第一个之外,我没有在我的传奇上获得预期的标签:

Bad labels on legend

我不明白,因为我在我的数据集标签数组中放置了正确的范围。只有第一个标签是正确的,但其他标签是默认的" Series2,Serie3,..."

这是我的代码:

// Each worksheet
foreach($tab_calcul as $calcul => $bool){

$tab_length_lig = ${"worksheet_$calcul"}->getHighestRow();
$tab_length_col = PHPExcel_Cell::columnIndexFromString(${"worksheet_$calcul"}->getHighestColumn())-1;

///////////////////////////////////////////////////////////////////////
////////////////      DATASERIES BY SHOP       ////////////////////////
///////////////////////////////////////////////////////////////////////

// Shop labels
$dataseriesLabels = array(
    new PHPExcel_Chart_DataSeriesValues('String', '$calcul!$A$4:$A$'.($tab_length_lig-1), NULL, $nb_enseigne)
);

// Dates
$xAxisTickValues = array(
    new PHPExcel_Chart_DataSeriesValues('String', '$calcul!$C$3:$'.ch2al($tab_length_col).'$3', NULL, $nb_synthese)
);

// Values
$dataSeriesValues = array();
$cpt = 3;

for($i = 0; $i < count($tab_enseigne); $i++) {

    $cpt++;
    array_push($dataSeriesValues, new PHPExcel_Chart_DataSeriesValues('Number', '$calcul!$C$'.$cpt.':$'.ch2al($tab_length_col).'$'.$cpt, NULL, $nb_synthese));
}

//  Build the dataseries
$series = new PHPExcel_Chart_DataSeries(
    PHPExcel_Chart_DataSeries::TYPE_BARCHART,       // plotType
    PHPExcel_Chart_DataSeries::GROUPING_STANDARD  ,  // plotGrouping
    range(0, count($dataSeriesValues)-1),           // plotOrder
    $dataseriesLabels,                              // plotLabel
    $xAxisTickValues,                               // plotCategory
    $dataSeriesValues                               // plotValues
);

$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COLUMN);

///////////////////////////////////////////////////////////////////////
///////////////       DATASERIES ALL SHOPS        /////////////////////
///////////////////////////////////////////////////////////////////////

// Label all shops
$dataseriesLabels2 = array(
    new PHPExcel_Chart_DataSeriesValues('String', '$calcul!$A$'.($tab_length_lig), NULL, 1)
);

// Values
$dataSeriesValues2 = array(
    new PHPExcel_Chart_DataSeriesValues('Number', '$calcul!$C$'.$tab_length_lig.':$'.ch2al($tab_length_col).'$'.$tab_length_lig, NULL, $nb_synthese)
);

//  Build the dataseries
$series2 = new PHPExcel_Chart_DataSeries(
    PHPExcel_Chart_DataSeries::TYPE_LINECHART,       // plotType
    PHPExcel_Chart_DataSeries::GROUPING_STANDARD  ,  // plotGrouping
    range(0, count($dataSeriesValues2)-1),           // plotOrder
    $dataseriesLabels2,                              // plotLabel
    $xAxisTickValues,                               // plotCategory
    $dataSeriesValues2                               // plotValues
);

/////////////////////////////////////////////////////////////////////////

//  Set the series in the plot area
$plotarea = new PHPExcel_Chart_PlotArea(NULL, array($series, $series2));
//  Set the chart legend
$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);

$title = new PHPExcel_Chart_Title('Graphe '.$calcul." : ".utf8_encode($tab_data[$rmookid_periode]["marque"]." - ".$tab_data[$rmookid_periode]["modele"]." - ".$tab_data[$rmookid_periode]["ean"]));

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

//  Set the position where the chart should appear in the worksheet
$chart->setTopLeftPosition('A17');
$chart->setBottomRightPosition('K30');

//  Add the chart to the worksheet
${"worksheet_$calcul"}->addChart($chart);
}

提前谢谢

1 个答案:

答案 0 :(得分:0)

我修好了。将$ calcul置于简单的引用中是一个巨大的错误:

'$calcul!$A$'.($tab_length_lig)

应该是:

$calcul.'!$A$'.($tab_length_lig)