Chart图形 [GDI+] OWCChart统计图的封装类 (转载)
利用OWC11进行作统计图的封装类。
/// <summary>
/// 类说明:进行作统计图的封装类
/// 联系方式:361983679
/// 更新网站:[url=http://www.cckan.net/thread-655-1-1.html]http://www.cckan.net/thread-655-1-1.html[/url]
/// </summary>
using System;
using System.Data;
using System.Text; namespace DotNet.Utilities
{
/// <summary>
/// 进行作统计图的封装类。
/// </summary>
public class OWCChart
{ #region 属性
private string _phaysicalimagepath;
private string _title;
private string _seriesname;
private int _picwidth;
private int _pichight;
private DataTable _datasource;
private string strCategory;
private string strValue; public string PhaysicalImagePath
{
set { _phaysicalimagepath = value; }
get { return _phaysicalimagepath; }
}
public string Title
{
set { _title = value; }
get { return _title; }
}
public string SeriesName
{
set { _seriesname = value; }
get { return _seriesname; }
} public int PicWidth
{
set { _picwidth = value; }
get { return _picwidth; }
} public int PicHight
{
set { _pichight = value; }
get { return _pichight; }
}
public DataTable DataSource
{
set
{
_datasource = value;
strCategory = GetColumnsStr(_datasource);
strValue = GetValueStr(_datasource);
}
get { return _datasource; }
} private string GetColumnsStr(System.Data.DataTable dt)
{
StringBuilder strList = new StringBuilder();
foreach (DataRow r in dt.Rows)
{
strList.Append(r[].ToString() + '\t');
}
return strList.ToString();
}
private string GetValueStr(DataTable dt)
{
StringBuilder strList = new StringBuilder();
foreach (DataRow r in dt.Rows)
{
strList.Append(r[].ToString() + '\t');
}
return strList.ToString();
} #endregion public OWCChart()
{
}
public OWCChart(string PhaysicalImagePath, string Title, string SeriesName)
{
_phaysicalimagepath = PhaysicalImagePath;
_title = Title;
_seriesname = SeriesName;
} /// <summary>
/// 柱形图
/// </summary>
/// <returns></returns>
public string CreateColumn()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add();//在ChartSpace对象中添加图表,Add方法返回chart对象 //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例
objChart.HasLegend = true; //标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue"; #region 样式设置 // //旋转
// objChart.Rotation = 360;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90 //背景颜色
// objChart.PlotArea.Interior.Color = "red"; //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
//
// objChart.Overlap = 50;//单个类别中标志之间的重叠量 #endregion //x,y轴的图示说明
objChart.Axes[].HasTitle = true;
objChart.Axes[].Title.Caption = "X : 类别";
objChart.Axes[].HasTitle = true;
objChart.Axes[].Title.Caption = "Y : 数量"; //添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(); //给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue); Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[].DataLabelsCollection.Add();
dl.HasValue = true;
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd; string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件. return filename; } /// <summary>
/// 饼图
/// </summary>
/// <returns></returns>
public string CreatePie()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add();//在ChartSpace对象中添加图表,Add方法返回chart对象 //指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie; //指定图表是否需要图例
objChart.HasLegend = true; //标题
objChart.HasTitle = true;
objChart.Title.Caption = _title; //添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(); //给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue); //表示系列或趋势线上的单个数据标志
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[].DataLabelsCollection.Add();
dl.HasValue = true;
dl.HasPercentage = true;
//图表绘图区的图例放置在右侧。
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight; string filename = DateTime.Now.Ticks.ToString() + ".gif";
string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件. return filename;
} /// <summary>
/// 条形图
/// </summary>
/// <returns></returns>
public string CreateBar()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add();//在ChartSpace对象中添加图表,Add方法返回chart对象 //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeBarClustered; //指定图表是否需要图例
objChart.HasLegend = true; //标题
objChart.HasTitle = true;
objChart.Title.Caption = _title;
// objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue"; #region 样式设置 // //旋转
// objChart.Rotation = 360;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90 //背景颜色
// objChart.PlotArea.Interior.Color = "red"; //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
//
// objChart.Overlap = 50;//单个类别中标志之间的重叠量 #endregion //x,y轴的图示说明
objChart.Axes[].HasTitle = true;
objChart.Axes[].Title.Caption = "X : 类别";
objChart.Axes[].HasTitle = true;
objChart.Axes[].Title.Caption = "Y : 数量"; //添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(); //给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue); Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[].DataLabelsCollection.Add();
dl.HasValue = true;
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd; string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
string strAbsolutePath = _phaysicalimagepath + "\\" + filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件. return filename; } }
}
Chart图形 [GDI+] OWCChart统计图的封装类 (转载)的更多相关文章
- Chart图形 [功能帮助类] Assistant创建显示图像的标签和文件 (转载)
点击下载 Assistant.zip /// <summary> /// 类说明:Assistant /// 联系方式:361983679 /// 更新网站:[url=http://www ...
- GDI+中发生一般性错误(转载)
在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三种原因:1. 相应的帐户没有写权限.解决方法:赋予 NETW ...
- Dojo Chart之经常使用统计图
非常多做web的都知道,在非常多web系统中会涉及到一些统计图.比如饼状图,柱状图.趋势图.以及叠加图等.提到这儿,做web的都非常熟悉的,jquery的highcharts就能搞定全部的涉及到统计图 ...
- WinForm的Chart图形控件
/// <summary>画条形图的方法 /// </summary> /// <param name="arr">条形值数组参数</pa ...
- GDI+编程说明及小结
原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...
- GDI+编程小结
GDI+(Graphics Device Interface Plus图形设备接口加)是Windows XP和Windows Server 2003操作系统的子系统,也是.NET框架的重要组成部分,负 ...
- highcharts实现统计图效果
highcharts实现统计图效果 ① 根据需求确定需要使用的案例图 把这个界面的html模板文件复制出来,放入./Application/Admin/View/User下改名为chart.html ...
- MS Chart 学习心得
利用Chart控件对学生信息进行统计,最终结果如下: Chart图形控件主要由以下几个部份组成: 1.Annotations --图形注解集合2.ChartAreas --图表区域集合3.Legen ...
- C# 操作Excel图形——绘制、读取、隐藏、删除图形
简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形 1.1 绘制图形并添加文本到图形 1.2 添加图片到图形 1.3 设置图形阴影效果 1.4 设置图形透明度 ...
随机推荐
- 《Spark大数据处理:技术、应用与性能优化 》
基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...
- Unreachable catch block for IOException. This exception is never thrown from the try statement body
Unreachable catch block for IOException. This exception is never thrown from the try statement body ...
- android开发板
element14-beaglebone-black http://www.embest-tech.cn/shop/star/element14-beaglebone-black-rev-c.html ...
- Method Overloading in WCF zt
Method overloading is the process of implementing Polymorphism in Object-Oriented Programming. A met ...
- bzoj 1513 [POI2006]Tet-Tetris 3D(二维线段树)
1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 540 Solved: 175[Submit ...
- JavaScript浏览器本地数据存储
浏览器本地存储主要使用的是sessionStorage和localStorage.两者都支持,sessionStorage保存的是浏览器和服务器的一次对话信息,只在一次回话中有效.当在新标签页或新窗口 ...
- win8下Oracle 12c 创建新用户并分配表空间
这个应该算还是比较简单吧,找了个博客照着搞,有点不同的地方改改,自己再记录下. 步骤是这样: 1.先用SYSTEM登录SOL Plus, 2.创建一个临时表空间,再创建一个表空间,然后再创建一个用户 ...
- Git 使用相关
GIT命令和使用 安装git完成后,创建工程目录,右键运行bash here 1.查看git当前配置信息: git config -l 2.配置用户名.邮箱git config --global us ...
- myeclipse输入“.”后没有自动提示功能
今天和室友安装了一样的myeclipse版本,结果室友的自动提示功能有,我的输入"."后却不能提示,这对我们敲代码简直来说是一个折磨,不能自动提示,本来还以为是系统问题,一个是wi ...
- SAP财务凭证冲销
爱思普信息咨询/SAP Partner网(SAP软件/ERP介绍/SAP All-in one介绍) 客户公司的同事有时经常会问到冲销的问题,可能大部份的用户对于财务的冲销功能都不是很理解,这里我们全 ...