Excel生成报表之解决方案---气泡图
2012-11-05 09:54
337 查看
首先来看下用代码生成图表的效果:
View Code
三、比较微软Excel生成图表和用Acey.ExcelX的实现。
1.设置数据源
微软Excel:需要手工填写数据源的每个单元格。
Acey.ExcelX:worksheet.ImportDataTable(dt, true, "A1");(其中"A1"指定要导入在工作表中的指定开始位置),能很轻松将其二维数据的数据导入到工作表中,减小了填写单元格数据的工作量。
在上篇文章/article/5796943.html中我们例举的例子只需要初始化一个二维数据,用方法worksheet.ImportArray(objArray, 0, 0)导入数组数据到工作表中,也能很轻松实现数据导入。
目前:数据导入已支持:数组、DataTable,DataView,DataRow和DataColumn,具体要用到哪种类型的对象,要看具体的业务、使用场景和用户的使用习惯等。
2.选择要生成的图表类型
微软Excel:需要选择图表类型。
Acey.ExcelX:通过获取工作表中所有图表对象集合(IChartCollection charts = worksheet.Charts;),在集合中添加指定类型的图表
IChart chart = charts.Add(ChartType.Bubble, 1, 4, 16, 12);其中ChartType.Bubble:表明要生成的图表是气泡图;
参数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枚举类型能让用户使用更方便。
4.设置系列点不一样的颜色:
微软Excel:双击系列,弹出系列窗口,在窗口中选中"Vary Colors by point"。
Acey.ExcelX:首先获取图表中指定系列,通过ISeriesCollection seriesCollection = chart.SeriesCollection; ISeries series = seriesCollection[0];,其中ISeriesCollection seriesCollection = chart.SeriesCollection;是获取图表中所有系列,ISeries series = seriesCollection[0];是获取指定索引处的系列对象。如果您对Acey.ExcelX很熟悉的话,直接
用一条语句:ISeries series = chart.SeriesCollection[0];就可以获取您想要操作的系列对象。
获取好指定系列后,通过设置系列属性series.IsColorVaried = true;就能显示在Excel中选中"Vary Colors by point"一样的效果。
四、总结
无需安装微软Excel,用代码也能很轻松实现生成各种二维图表和三维图表的效果。 下载最新版本到www.aceyoffice.com。如果您想对Acey.ExcelX有进一步了解,在网站下载帮助和Demo。
View Code
/// <summary> /// 这个例子展示如何生成气泡图。 /// </summary> public void CreateBubbleChart() { //创建工作薄对象。 IWorkbook workbook = ExcelxApplication.CreateWorkbook(); //获取工作薄对象中指定索引处工作表对象。 IWorksheet worksheet = workbook.Worksheets[0]; //创建DataTable对象。 DataTable dt = new DataTable(); //添加列该DataTable对象中。 dt.Columns.Add("Employee Name"); dt.Columns.Add("Salary", typeof(int)); dt.Columns.Add("Other", typeof(int)); //添加行该DataTable对象中。 dt.Rows.Add(new object[3] { "Nelson", 40000, 20000 }); dt.Rows.Add(new object[3] { "Young", 55500, 25000 }); dt.Rows.Add(new object[3] { "Lambert", 25000, 10000 }); dt.Rows.Add(new object[3] { "Johnson", 25050, 12000 }); dt.Rows.Add(new object[3] { "Lee", 45332, 23000 }); //导入该DataTable对象中数据到工作表指定位置。 worksheet.ImportDataTable(dt, true, "A1"); //获取该工作表对象中所有图表。 IChartCollection charts = worksheet.Charts; //添加指定类型的图表到指定单元格区域并返回该新添加的图表对象。 IChart chart = charts.Add(ChartType.Bubble, 1, 4, 16, 12); //获取工作表指定范围的单元格区域。 IRange range = worksheet.Cells.CreateRange("A1:C6"); //为该图表对象设置数据源。 chart.SetSourceData(range, RowCol.Columns); //获取该图表对象所有的系列。 ISeriesCollection seriesCollection = chart.SeriesCollection; //获取指定索引处的系列对象。 ISeries series = seriesCollection[0]; //表明是否每个数据点的颜色都不一样,该图表必须只能包括一个系列。 series.IsColorVaried = true; //保存该工作薄为指定类型。 workbook.SaveAs(@"d:\book1.xls", FileFormat.Excel97To2003); }
三、比较微软Excel生成图表和用Acey.ExcelX的实现。
1.设置数据源
微软Excel:需要手工填写数据源的每个单元格。
Acey.ExcelX:worksheet.ImportDataTable(dt, true, "A1");(其中"A1"指定要导入在工作表中的指定开始位置),能很轻松将其二维数据的数据导入到工作表中,减小了填写单元格数据的工作量。
在上篇文章/article/5796943.html中我们例举的例子只需要初始化一个二维数据,用方法worksheet.ImportArray(objArray, 0, 0)导入数组数据到工作表中,也能很轻松实现数据导入。
目前:数据导入已支持:数组、DataTable,DataView,DataRow和DataColumn,具体要用到哪种类型的对象,要看具体的业务、使用场景和用户的使用习惯等。
2.选择要生成的图表类型
微软Excel:需要选择图表类型。
Acey.ExcelX:通过获取工作表中所有图表对象集合(IChartCollection charts = worksheet.Charts;),在集合中添加指定类型的图表
IChart chart = charts.Add(ChartType.Bubble, 1, 4, 16, 12);其中ChartType.Bubble:表明要生成的图表是气泡图;
参数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枚举类型能让用户使用更方便。
4.设置系列点不一样的颜色:
微软Excel:双击系列,弹出系列窗口,在窗口中选中"Vary Colors by point"。
Acey.ExcelX:首先获取图表中指定系列,通过ISeriesCollection seriesCollection = chart.SeriesCollection; ISeries series = seriesCollection[0];,其中ISeriesCollection seriesCollection = chart.SeriesCollection;是获取图表中所有系列,ISeries series = seriesCollection[0];是获取指定索引处的系列对象。如果您对Acey.ExcelX很熟悉的话,直接
用一条语句:ISeries series = chart.SeriesCollection[0];就可以获取您想要操作的系列对象。
获取好指定系列后,通过设置系列属性series.IsColorVaried = true;就能显示在Excel中选中"Vary Colors by point"一样的效果。
四、总结
无需安装微软Excel,用代码也能很轻松实现生成各种二维图表和三维图表的效果。 下载最新版本到www.aceyoffice.com。如果您想对Acey.ExcelX有进一步了解,在网站下载帮助和Demo。
相关文章推荐
- Excel生成报表之解决方案--组合的用法
- Excel生成报表之解决方案--设置整行整列(附源码)
- Excel生成报表之解决方案---开盘-盘高-盘低-收盘图(附源码)
- Excel生成报表之解决方案--单元格添加批注
- Excel生成报表之解决方案---合并图表
- Excel生成报表之解决方案--插入图片
- Excel生成报表之解决方案--设置单个单元格格式
- Excel生成报表之解决方案--设置多个单元格区域的格式
- Excel生成报表之解决方案--单元格富文本
- Excel生成报表之解决方案---簇状圆锥图
- Excel生成报表之解决方案--合并单元格的用法
- Excel生成报表之解决方案---柱状图
- python生成每日报表数据(Excel)并邮件发送
- javascript操作excel生成报表示例
- Asp.net生成Excel报表
- 在.NET中不安装Office使用EPPlus生成带图表(Chart)的Excel报表
- .net关于企业Excel报表的生成
- 用MyXls生成Excel报表(C#)---Good(推荐)
- 使用C#和Excel进行报表开发(三)-生成统计图(Chart)5
- 从DataView中生成Excel报表的方案(C#)