zoukankan      html  css  js  c++  java
  • phpexcel图形图表(二)图形

    原创文章,转载请注明出处:http://www.cnblogs.com/phpgcs

    本篇文章实例演示如上图,画3种图形以及多sheet操作等

    先回忆下第一篇中line图形的API调用步骤:

    1,引入PHPExcel
    2,填充源数据到工作表上
    	$objWorkSheet->fromArray($array);
    	or
    	$objWorkSheet->setCellValues('A1', 1);
    3,设置dataseries
    	PHPExcel_Chart_DataSeries::TYPE_LINECHART,
    	PHPExcel_Chart_DataSeries::GROUPING_STACKED,
    	range(0, count($dataSeriesValues)-1),
    	$dataseriesLabels=>array(new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$AB$1', NULL, 1)),
    	$xAxisTickValues=>array(new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$AA$2:$AA$21', NULL, 20),),
    	$dataSeriesValues=>array(new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$AB$2:$AB$21', NULL, 20))
    4,设置chart
    	'chartTitle'=>'just a title',
    	$title=>new PHPExcel_Chart_Title('新闻热点趋势'),
    	$legend=>new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false),
    	$plotarea=>new PHPExcel_Chart_PlotArea(NULL, array($series)),
    	'plotVisibleOnly'=>true,
    	'displayBlanksAs'=>0,
    	'xAxisLabel'=>NULL,
    	'yAxisLabel'=>new PHPExcel_Chart_Title('报道量'),
    5,设置chart位置
    	$chart->setTopLeftPosition('A1');                                                                                                                 
    	$chart->setBottomRightPosition('P20');
    6,添加chart
        $objWorksheet->addChart($chart);
    7,保存文件
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    	$objWriter->setIncludeCharts(TRUE);
    	$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
    

      

    上面是一个完整的 line chart 的API

    对于 bar chart 来说,不同的地方有: 

    1,$series 的第一个参数 改为 PHPExcel_Chart_DataSeries::TYPE_BARCHART,

    2,增加一个画图的方向设置 $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR);

     原创文章,转载请注明出处:http://www.cnblogs.com/phpgcs

    对于 pie chart 来说,不同的地方有: 

    1,$series 的第一个参数 改为PHPExcel_Chart_DataSeries::GROUPING_STACKED,

    2,增加一个画图的方向设置 $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_PIE);

    对于 radar chart 来说, 不同 的地方有:

    1,$series 的第1个参数 改为 PHPExcel_Chart_DataSeries::TYPE_RADARCHART,

    2,$series 的第2个参数 改为 NULL

    3,$series 增加第5个参数 NULL, 意味着 雷达的连线为平滑的

    4,$series 增加第6个参数 PHPExcel_Chart_DataSeries::STYLE_MARKER 

    5,$plotarea 的第1个参数 为 $layout = new PHPExcel_Chart_Layout();

    6,$chart 第8个参数 yAxisLabel 设置为NULL,因为雷达图没有Y轴

    上面就是API的区别,下面说说在一个Sheet上作图的注意事项:

    1,首先,你的源数据一般不想让一打开就看到,那就将其放置到AA列之后,这样A~Z列都看不到源数据

    $objWorksheet->fromArray($newarraydata, NULL, 'AA1');  
    

      当然,取数据的时候也要从AA开始取

    2,如果想要做多个chart在一个sheet上,还需要为每个chart指定区域

    $chart->setTopLeftPosition('A1');                                                                                                                      
    $chart->setBottomRightPosition('N20');
    
    $chart2->setTopLeftPosition('A21');                                                                                                                      
    $chart2->setBottomRightPosition('G40');
    
    
    $chart3->setTopLeftPosition('H21');                                                                                                                      
    $chart3->setBottomRightPosition('N40');
    

      

    3,对于多个sheet上操作,注意切换sheet

    $objWorksheet = $objPHPExcel->getActiveSheet(); //获取当前活动表
    
    $objPHPExcel->createSheet(); //创建一个sheet                                                            
    $objPHPExcel->setActiveSheetIndex(1);//激活第2个sheet
    

      原创文章,转载请注明出处:http://www.cnblogs.com/phpgcs

  • 相关阅读:
    17. Java学习之枚举
    【myBatis】It's likely that neither a Result Type nor a Result Map was specified.
    【java】ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    【java】字符串截取
    【oracle】decode函数
    【myBatis】Mapped Statements collection already contains value for xxx
    【java异常】expected at least 1 bean which qualifies as autowire candidate for this depende
    【电脑】E470C如何关闭触摸板
    【java】spring中实例化bean的三种方法区别,使用场景
    【Excel】IF函数
  • 原文地址:https://www.cnblogs.com/phpgcs/p/phpexcel_chart_2.html
Copyright © 2011-2022 走看看