今天我正在使用phpexcel在我的文件中生成一些条形图。 尽管如此,除了第一个之外,我没有在我的传奇上获得预期的标签:
我不明白,因为我在我的数据集标签数组中放置了正确的范围。只有第一个标签是正确的,但其他标签是默认的" 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);
}
提前谢谢
答案 0 :(得分:0)
我修好了。将$ calcul置于简单的引用中是一个巨大的错误:
'$calcul!$A$'.($tab_length_lig)
应该是:
$calcul.'!$A$'.($tab_length_lig)