PHPExcel Bar chart using PHPExcel

Rock Linux picture Rock Linux · Jan 12, 2017 · Viewed 8.5k times · Source

I have completed my work till gets the SQL table data in excel but I also want to convert data into a Bar chart using PHPEXCEL. Anyone have any idea? how to do that? My PHPEXCEL code is below,

$sql = "SELECT sum(Ticket) AS count, Applications FROM Temp_table GROUP BY Apps";
$result = $conn->query($sql);

if($result->num_rows > 0)
{
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);

    $rownumber = 2;

    $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Applications');
    $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Count');

    while($row = $result->fetch_assoc())

    {   
    $objPHPExcel->getActiveSheet()->setCellValue('A'.$rownumber, $row["Applications"]);
    $objPHPExcel->getActiveSheet()->setCellValue('B'.$rownumber, $row["count"]);
        $rownumber++;

    }
    $objPHPExcel->getActiveSheet()->setTitle('Sheet1');

    }

Answer

affaz picture affaz · Feb 5, 2017

Here is the code for bar chart

//  Set the Labels for each data series we want to plot
//    Datatype
//    Cell reference for data
//    Format Code
//    Number of datapoints in series
//    Data values
//    Data Marker
$dataSeriesLabels = array(
  new PHPExcel_Chart_DataSeriesValues('String', 'Data!$D$1', NULL, 1), //  2011
);
//  Set the X-Axis Labels
//    Datatype
//    Cell reference for data
//    Format Code
//    Number of datapoints in series
//    Data values
//    Data Marker
$xAxisTickValues = array(
  new PHPExcel_Chart_DataSeriesValues('String', 'Data!$A$2:$A$5', NULL, 6),  //  Q1 to Q4
);
//  Set the Data values for each data series we want to plot
//    Datatype
//    Cell reference for data
//    Format Code
//    Number of datapoints in series
//    Data values
//    Data Marker
$dataSeriesValues = array(

  new PHPExcel_Chart_DataSeriesValues('Number', 'Data!$D$2:$D$5', NULL, 6),

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

//  Set the series in the plot area
$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
//  Set the chart legend
$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
$title = new PHPExcel_Chart_Title('Topic Relevance');
$yAxisLabel = new PHPExcel_Chart_Title('Points');
//  Create the chart
$chart = new PHPExcel_Chart(
  'chart1',   // name
  $title,     // title
  $legend,    // legend
  $plotArea,    // plotArea
  true,     // plotVisibleOnly
  0,        // displayBlanksAs
  NULL,     // xAxisLabel
  $yAxisLabel   // yAxisLabel
);
//  Set the position where the chart should appear in the worksheet
$chart->setTopLeftPosition('B10');
$chart->setBottomRightPosition('F25');
//  Add the chart to the worksheet
$objWorksheet->addChart($chart);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
//this line is necessary to display chart in excel
    $objWriter->setIncludeCharts(TRUE);