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
phpexcel图形图表(二)图形的更多相关文章
- phpexcel图形图表(一)入门
PHPExcel - Excel的PHP处理引擎 PHPExcel 提供了一系列的 PHP语言 类,让你可以轻松地读写操作以下格式的文件:.xls/.xlsx/.csv/.ods/Gnumeric/P ...
- R提高篇(二): 图形初阶
目录: 图形示例 图形参数 符号.线条 颜色 文本属性 尺寸与边界 自定义标题 自定义坐标轴 图例 文本标注 图形组合 图形示例 如下代码描述病人对两种药物五个剂量水平上的响应情况 > myda ...
- linux入门教程(二) 图形界面还是命令窗口
对于linux的应用,我想大多数都是用在服务器领域,对于服务器来讲真的没有必要跑一个图形界面.所以我们平时安装linux操作系统时往往是不安装图形界面的.说到这里也许你会有疑问,图形界面还能选择装或者 ...
- 201771010126 王燕《面向对象程序设计(Java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: 创建空框架 . 在Java中,常采用框架(Frame) ...
- 马凯军201771010116《面向对象与程序设计Java》第十二周学习总结
一.理论与知识学习部分 Java的抽象窗口工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 大部分AWT组件都 ...
- 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...
- 201771010134杨其菊《面向对象程序设计java》第十二周学习总结
第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...
- 达拉草201771010105《面向对象程序设计(java)》第十二周学习总结
达拉草201771010105<面向对象程序设计(java)>第十二周学习总结 第一部分:理论知识 Java的抽象窗口工具箱(AbstractWindow Toolkit,AWT)包含在j ...
- 第十二周java实验作业
实验十二 图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: Java的集合框架实现了对各种数据结构的封装. jav ...
随机推荐
- 【转载】Mini2440启动配置文件说明
对于mini2440,虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由busybox完成,Qtopia(qpe)只是在启动的最后阶段被开启. 由于默 ...
- 使用layer.js注意事项
一.使用时,将layer整个文件夹放置你站点的任何一个目录,layer.js 开发版,layer.min.js 压缩版,引入其中一个即可.css等其它文件无需引入. 二.如果您的js引入是通过合并处理 ...
- sping boot 入门
http://www.cnblogs.com/ityouknow/p/5662753.html http://blog.csdn.net/lxhjh/article/details/51711148 ...
- 最基础的CSS面试题
1.Doctype作用是什么?严格模式与混杂模式分别是如何触发这两种模式的,区分它们有何意义? (1)<!DOCTYPE>声明位于文档中的最前面,处于<html>标签之前.告知 ...
- FL2440 rt3070模块station模式移植
---------------------------------------------------------------------------------------------------- ...
- javascript快速入门13--BOM——浏览器对象模型(Browser Object Model)
什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...
- Node.js 访问https网站
源码: //==================================================== // 访问https://www.zhihu.com/得到pagecode // ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面如何自动运行,不让用户干涉,设置起始界面
右击视图管理器,添加一个TargetVisualization 在起始视图中点击右边的按钮,然后选择一个HMI作为起始HMI 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: h ...
- PuTTY连接Linuxserver常常断线解决方式
PuTTY在远程连接server之后.常常会断线提示"Software caused connection abort",并且常常在非常短的时间内就失去连接. 解决方式例如以下: ...
- 你是那种仅仅看《XXXXX从入门到精通》的程序猿吗?
我一開始又要废话一番了. 实际上上了大学以后.你常常会在网上,在和别人的交流里,在老师的课堂上.反复听到一些书,比方黄仁宇的<万历十五年>.王小波"时代三部曲".村上春 ...