博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel生成报表之解决方案---簇状圆锥图
阅读量:6352 次
发布时间:2019-06-22

本文共 2514 字,大约阅读时间需要 8 分钟。

首先来看下用代码生成图表的效果:

要生成这样效果的三维图表,如何来实现,先来了解微软Excel中生成这样的图表,需要哪些步骤。

一、微软Excel中图表生成

1.首先需要在单元格中填写图表数据源所需要数据。如上图中单元格数据Employee,Salary,Other等。

2.填写完数据后,点击Excel工具栏中图表按钮。

3.点击图表按钮后,会弹出图表导向的窗口,选择你需要生成的图表类型。

4.然后点击下一步,窗口如下:

5.为图表指定数据源并选择生成的系列是按行还是按列。

二、用Acey.ExcelX组件实现

首先需要导入名称空间。

using Acey.ExcelX;

using Acey.ExcelX.Charts;

View Code
1 ///  2         /// 下面列子描述如何生成三维簇状圆锥图。 3         ///  4         public void CreateConeChart() 5         { 6             //创建工作薄对象。 7             IWorkbook workbook = ExcelxApplication.CreateWorkbook(); 8  9             //获取工作薄对象中指定索引处工作表对象。10             IWorksheet worksheet = workbook.Worksheets[0];11 12             //初始化二维数组。13             object[,] objArray = new object[5, 3] {14                  { "Nelson", 40000, 20000 },15                  { "Young", 55500, 25000 },16                  { "Lambert", 25000, 10000 },17                  { "Johnson", 25050, 12000 },18                  { "Lee", 45332, 23000 }};           19 20             //导出该二维数组的数据到工作表指定索引处的位置。21             worksheet.ImportArray(objArray, 0, 0);22 23             //获取工作表中所有图表对象。24             IChartCollection charts = worksheet.Charts;25 26             //添加指定图表类型到工作表中指定单元格范围。27             IChart chart = charts.Add(ChartType.Cone, 1, 4, 16, 12);28 29             //获取指定单元格范围。30             IRange range = worksheet.Cells.CreateRange("A1:C6");31 32             //获取该图表对象的数据源。33             chart.SetSourceData(range, RowCol.Columns);34 35             //保存该工作薄为指定类型。36             workbook.SaveAs(@"d:\book1.xls", FileFormat.Excel97To2003);37         }

三、比较微软Excel生成图表和用Acey.ExcelX的实现。

1.设置数据源

微软Excel:需要手工填写数据源的每个单元格。

Acey.ExcelX:只需要初始化一个二维数据,并用方法worksheet.ImportArray(objArray, 0, 0)(其中第一个0表示行索引,第二个0代表列索引),指定要导入在工作表中

的位置就能很轻松将其二维数据的数据导入到工作表中,减小了填写单元格数据的工作量。

在上篇文章中我们例举的例子导入DataTable的数据到工作表中,也能很轻松实现数据导入。

2.选择要生成的图表类型

微软Excel:需要选择图表类型。

Acey.ExcelX:通过获取工作表中所有图表对象集合(IChartCollection charts = worksheet.Charts;),在集合中添加指定类型的图表

IChart chart = charts.Add(ChartType.Cone, 1, 4, 16, 12);(其中参数1代表图表在工作表中左上角的行索引位置,4代表图表在工作表中左上角的列索引位置,

                                                                                         16代表图表在工作表中右下角的行索引位置,4代表图表在工作表中右下角的列索引位置)

就能很轻松将要生成的图表控制在指定的单元格范围中。返回值Chart对象,方便可以直接修改图表的其他属性。

3.数据源设置:

微软Excel:首先要需要选择数据源单元格范围,再选择系列按行还是按列生成。

Acey.ExcelX:通过创建单元格范围的对象(IRange range = worksheet.Cells.CreateRange("A1:C6");)来创建数据源,再通过设置数据源

chart.SetSourceData(range, RowCol.Columns);,其中参数range指定数据源单元格范围,RowCol枚举类型(包含Rows和Columns)来控制系列是按行或列来生成。

RowCol枚举类型能让用户使用更方便。

 

四、总结

无需安装微软Excel,用代码也能很轻松实现生成各种二维图表和三维图表的效果。

 

 

 

 

 

转载于:https://www.cnblogs.com/happyfish78/archive/2012/11/02/2750687.html

你可能感兴趣的文章
CronExpression介绍
查看>>
第十八章:MVVM(八)
查看>>
点击表头切换升降序排序方式
查看>>
第26天,Django之include本质
查看>>
Java中静态变量和实例变量的区别
查看>>
秋名山老司机(详解)——bugku
查看>>
RED | Robot Framework集成开发环境
查看>>
育碧同 Mozilla 联手开发 AI 代码助手
查看>>
【实用】面对枯燥的源码,如何才能看得下去?
查看>>
智库说 | 徐远:数字时代的城市潜力
查看>>
《JSP极简教程》jsp c:forEach用法
查看>>
WebSocket详解(六):刨根问底WebSocket与Socket的关系
查看>>
用 Go 写一个轻量级的 ssh 批量操作工具
查看>>
网站设计之合理架构CSS 架构CSS
查看>>
OTP 22.0 RC3 发布,Erlang 编写的应用服务器
查看>>
D语言/DLang 2.085.1 发布,修复性迭代
查看>>
感觉JVM的默认异常处理不够好,既然不好那我们就自己来处理异常呗!那么如何自己处理异常呢?...
查看>>
Java 基础 之 算数运算符
查看>>
Windows下配置安装Git(二)
查看>>
一个最简单的基于Android SearchView的搜索框
查看>>