Laravel下使用PHPExcel生成关联图饼

  1. PHPExcel下载
  2. 在app目录下面创建一个新目录libs
  3. 把下载好的PHPExcel文件放入libs目录下面
  4. 创建控制器 php artisan make:Controller 文件名
  5. 创建访问路由
  6. 创建方法:
public   function exportExcel(){
		//引入最重要的PHPExcel类库的入口文件
        require_once str_replace('\\', '/', base_path()) . '/app/libs/PHPExcel/Classes/PHPExcel.php';  
		/* 创建PHPExcel对象 */
        $objPHPExcel = new \PHPExcel();
        /* 因此取活动sheet对象 */
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $objWorksheet->fromArray(
            array(
                array('省份',	'总数'),
                array('Q1',   12),
                array('Q2',   56),
                array('Q3',   52),
                array('Q4',   30),
            )
        );


        //设置图表比例显示的来源
        $dataSeriesLabels1 = array(
            new \PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2011
        );

        //设置图表比例对应的名称
        $xAxisTickValues1 = array(
            new \PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
        );

        // 设置作图区域数据
        $dataSeriesValues1 = array(
            new \PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
        );

        // 构建数据
        $series1 = new \PHPExcel_Chart_DataSeries(
            \PHPExcel_Chart_DataSeries::TYPE_PIECHART,				// plotType
            NULL,			                                        // plotGrouping (Pie charts don't have any grouping)
            range(0, count($dataSeriesValues1)-1),					// plotOrder
            $dataSeriesLabels1,										// plotLabel
            $xAxisTickValues1,										// plotCategory
            $dataSeriesValues1										// plotValues
        );


        $layout1 = new \PHPExcel_Chart_Layout();
        $layout1->setShowVal(TRUE); //设置是否显示原始值
        $layout1->setShowPercent(TRUE); //设置是否显示比例

        // 给数据系列分配一个做图区域
        $plotArea1 = new \PHPExcel_Chart_PlotArea($layout1, array($series1));
        //设置图表图例
        $legend1 = new \PHPExcel_Chart_Legend(\PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
        // 设置图表标题
        $title1 = new \PHPExcel_Chart_Title('Test Pie Chart');
        //创建图形
        $chart1 = new \PHPExcel_Chart(
            'chart1',		// name
            $title1,		// title
            $legend1,		// legend
            $plotArea1,		// plotArea
            true,			// plotVisibleOnly
            0,				// displayBlanksAs
            NULL,			// xAxisLabel
            NULL			// yAxisLabel		- Pie charts don't have a Y-Axis
        );


        //设置图形绘制区域范围
        $chart1->setTopLeftPosition('I7');
        $chart1->setBottomRightPosition('P20');

        //增加图表
        $objWorksheet->addChart($chart1);

        //导出数据
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->setIncludeCharts(TRUE); //打开做图开关
        $objWriter->save('./tmp/bingtu3.xlsx'); //保存文件
    }

你可能感兴趣的:(laravel)