封装Office自带的OWC可以实现图表的输出.
利用Office自带的OWC可以实现图表的输出,下面的代码做了下简单的封装。
using System;
using System.Data;
using System.Text;
using System.Drawing;
namespace doHope.OWCC
{
/**//// <summary>
/// 封装OWC做统计图
/// by cherish58
/// </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 _strdatasource;
private string strCategory;
private string strValue;
/**//// <summary>
/// 图片存放路径
/// </summary>
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;}
}
/**//// <summary>
/// 传DataTable类型
/// </summary>
public DataTable DataSource
{
set
{
_datasource=value;
strCategory=GetColumnsStr(_datasource);
strValue=GetValueStr(_datasource);
}
get{return _datasource;}
}
/**//// <summary>
/// 传字符串,分隔用分号(;)
/// </summary>
public string strDataSource
{
set
{
_strdatasource = value ;
strCategory=GetColumnsStr(_strdatasource);
strValue=GetValueStr(_strdatasource);
}
get{return _strdatasource;}
}
private string GetColumnsStr(DataTable dt)
{
StringBuilder strList=new StringBuilder();
foreach(DataRow r in dt.Rows)
{
strList.Append(r[0].ToString()+'\t');
}
return strList.ToString();
}
private string GetColumnsStr(string coldt)
{
return coldt == "" ? "" : coldt.Substring(0,coldt.IndexOf(";")) ;
}
private string GetValueStr(DataTable dt)
{
StringBuilder strList=new StringBuilder();
foreach(DataRow r in dt.Rows)
{
strList.Append(r[1].ToString()+'\t');
}
return strList.ToString();
}
private string GetValueStr(string rowdt)
{
return rowdt == "" ? "" : rowdt.Substring(rowdt.LastIndexOf(";")+1) ;
}
#endregion
构造函数#region 构造函数
/**//// <summary>
/// 0
/// </summary>
public OWCChart()
{
//
}
/**//// <summary>
/// 1
/// </summary>
/// <param name="PhaysicalImagePath"></param>
/// <param name="Title"></param>
/// <param name="SeriesName"></param>
/// <param name="PicWidth"></param>
/// <param name="PicHight"></param>
public OWCChart(string PhaysicalImagePath,string Title,string SeriesName,int PicWidth,int PicHight)
{
_phaysicalimagepath=PhaysicalImagePath;
_title=Title;
_seriesname=SeriesName;
_pichight = PicHight ;
_picwidth = PicWidth ;
}
/**//// <summary>
/// 2
/// </summary>
/// <param name="Title"></param>
/// <param name="SeriesName"></param>
/// <param name="PicWidth"></param>
/// <param name="PicHight"></param>
public OWCChart(string Title,string SeriesName,int PicWidth,int PicHight)
{
_title=Title;
_seriesname=SeriesName;
_pichight = PicHight ;
_picwidth = PicWidth ;
}
#endregion
柱形图#region 柱形图
/**//// <summary>
/// 柱形图
/// </summary>
/// <param name="Xname">X轴描述</param>
/// <param name="Yname">Y轴描述</param>
/// <param name="IfExportToFile">若把图像输出到文件夹则为true,否则为false</param>
/// <returns>若把图像输出到文件夹返回生成的图像名称,否则返回Bitmap类型</returns>
public Object CreateColumn(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass() ;//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0) ;//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC11.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered3D ;
else
objChart.Type = 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 = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//
// //背景颜色
// objChart.PlotArea.Interior.Color = "red";
//
// //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
线性图#region 线性图
/**//// <summary>
/// 线性图
/// </summary>
/// <param name="Xname">X轴描述</param>
/// <param name="Yname">Y轴描述</param>
/// <param name="IfExportToFile">若把图像输出到文件夹则为true,否则为false</param>
/// <returns>若把图像输出到文件夹返回生成的图像名称,否则返回Bitmap类型</returns>
public Object CreateLine(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass() ;//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0) ;//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC11.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeLine3D ;
else
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeLine ;
//指定图表是否需要图例
objChart.HasLegend = true ;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= _title;
objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
样式设置#region 样式设置
//旋转
// objChart.Rotation = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//
// //背景颜色
// objChart.PlotArea.Interior.Color = "red";
//
// //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
条形图(横向)#region 条形图(横向)
/**//// <summary>
/// 条形图(横向)
/// </summary>
/// <param name="Xname"></param>
/// <param name="Yname"></param>
/// <param name="IfExportToFile"></param>
/// <returns></returns>
public Object CreateBar(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypeBarClustered3D ;
else
objChart.Type=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 = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//背景颜色
// objChart.PlotArea.Interior.Color = "red";
//底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
饼图#region 饼图
/**//// <summary>
/// 饼图
/// </summary>
/// <param name="IfExportToFile"></param>
/// <returns></returns>
public Object CreatePie(bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
if(If3D == true)
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypePie3D ;
else
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypePie;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= _title;
objChart.Title.Font.Bold = true ;
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
//表示系列或趋势线上的单个数据标志
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
dl.HasPercentage=true;
//图表绘图区的图例放置在右侧。
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionRight;
// string filename=DateTime.Now.Ticks.ToString()+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
}
}
using System.Data;
using System.Text;
using System.Drawing;
namespace doHope.OWCC
{
/**//// <summary>
/// 封装OWC做统计图
/// by cherish58
/// </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 _strdatasource;
private string strCategory;
private string strValue;
/**//// <summary>
/// 图片存放路径
/// </summary>
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;}
}
/**//// <summary>
/// 传DataTable类型
/// </summary>
public DataTable DataSource
{
set
{
_datasource=value;
strCategory=GetColumnsStr(_datasource);
strValue=GetValueStr(_datasource);
}
get{return _datasource;}
}
/**//// <summary>
/// 传字符串,分隔用分号(;)
/// </summary>
public string strDataSource
{
set
{
_strdatasource = value ;
strCategory=GetColumnsStr(_strdatasource);
strValue=GetValueStr(_strdatasource);
}
get{return _strdatasource;}
}
private string GetColumnsStr(DataTable dt)
{
StringBuilder strList=new StringBuilder();
foreach(DataRow r in dt.Rows)
{
strList.Append(r[0].ToString()+'\t');
}
return strList.ToString();
}
private string GetColumnsStr(string coldt)
{
return coldt == "" ? "" : coldt.Substring(0,coldt.IndexOf(";")) ;
}
private string GetValueStr(DataTable dt)
{
StringBuilder strList=new StringBuilder();
foreach(DataRow r in dt.Rows)
{
strList.Append(r[1].ToString()+'\t');
}
return strList.ToString();
}
private string GetValueStr(string rowdt)
{
return rowdt == "" ? "" : rowdt.Substring(rowdt.LastIndexOf(";")+1) ;
}
#endregion
构造函数#region 构造函数
/**//// <summary>
/// 0
/// </summary>
public OWCChart()
{
//
}
/**//// <summary>
/// 1
/// </summary>
/// <param name="PhaysicalImagePath"></param>
/// <param name="Title"></param>
/// <param name="SeriesName"></param>
/// <param name="PicWidth"></param>
/// <param name="PicHight"></param>
public OWCChart(string PhaysicalImagePath,string Title,string SeriesName,int PicWidth,int PicHight)
{
_phaysicalimagepath=PhaysicalImagePath;
_title=Title;
_seriesname=SeriesName;
_pichight = PicHight ;
_picwidth = PicWidth ;
}
/**//// <summary>
/// 2
/// </summary>
/// <param name="Title"></param>
/// <param name="SeriesName"></param>
/// <param name="PicWidth"></param>
/// <param name="PicHight"></param>
public OWCChart(string Title,string SeriesName,int PicWidth,int PicHight)
{
_title=Title;
_seriesname=SeriesName;
_pichight = PicHight ;
_picwidth = PicWidth ;
}
#endregion
柱形图#region 柱形图
/**//// <summary>
/// 柱形图
/// </summary>
/// <param name="Xname">X轴描述</param>
/// <param name="Yname">Y轴描述</param>
/// <param name="IfExportToFile">若把图像输出到文件夹则为true,否则为false</param>
/// <returns>若把图像输出到文件夹返回生成的图像名称,否则返回Bitmap类型</returns>
public Object CreateColumn(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass() ;//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0) ;//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC11.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered3D ;
else
objChart.Type = 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 = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//
// //背景颜色
// objChart.PlotArea.Interior.Color = "red";
//
// //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
线性图#region 线性图
/**//// <summary>
/// 线性图
/// </summary>
/// <param name="Xname">X轴描述</param>
/// <param name="Yname">Y轴描述</param>
/// <param name="IfExportToFile">若把图像输出到文件夹则为true,否则为false</param>
/// <returns>若把图像输出到文件夹返回生成的图像名称,否则返回Bitmap类型</returns>
public Object CreateLine(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass() ;//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0) ;//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC11.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeLine3D ;
else
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeLine ;
//指定图表是否需要图例
objChart.HasLegend = true ;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= _title;
objChart.Title.Font.Bold=true;
// objChart.Title.Font.Color="blue";
样式设置#region 样式设置
//旋转
// objChart.Rotation = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//
// //背景颜色
// objChart.PlotArea.Interior.Color = "red";
//
// //底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
条形图(横向)#region 条形图(横向)
/**//// <summary>
/// 条形图(横向)
/// </summary>
/// <param name="Xname"></param>
/// <param name="Yname"></param>
/// <param name="IfExportToFile"></param>
/// <returns></returns>
public Object CreateBar(string Xname,string Yname,bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
if(If3D == true)
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypeBarClustered3D ;
else
objChart.Type=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 = 145;//表示指定三维图表的旋转角度
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90
//背景颜色
// objChart.PlotArea.Interior.Color = "red";
//底座颜色
// objChart.PlotArea.Floor.Interior.Color = "green";
// objChart.Overlap = 50;//单个类别中标志之间的重叠量
#endregion
//x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : "+Xname+"";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : "+Yname+"";
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
// string filename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
饼图#region 饼图
/**//// <summary>
/// 饼图
/// </summary>
/// <param name="IfExportToFile"></param>
/// <returns></returns>
public Object CreatePie(bool IfExportToFile,bool If3D)
{
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();//创建ChartSpace对象来放置图表
OWC11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
if(If3D == true)
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypePie3D ;
else
objChart.Type=OWC11.ChartChartTypeEnum.chChartTypePie;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= _title;
objChart.Title.Font.Bold = true ;
//添加一个series
OWC11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定series的名字
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),SeriesName);
//给定分类
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimCategories,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
//给定值
ThisChSeries.SetData(OWC11.ChartDimensionsEnum.chDimValues,
OWC11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
//表示系列或趋势线上的单个数据标志
OWC11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
dl.HasPercentage=true;
//图表绘图区的图例放置在右侧。
// dl.Position=OWC11.ChartDataLabelPositionEnum.chLabelPositionRight;
// string filename=DateTime.Now.Ticks.ToString()+".gif";
if(IfExportToFile == true)
{
string filename = "temp.gif" ;
string strAbsolutePath = _phaysicalimagepath + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight); //输出成GIF文件.
return filename ;
}
else
{
string tmp = "Tmp" ;
objCSpace.ExportPicture(tmp,"GIF",_picwidth,_pichight) ;
Bitmap bm = new Bitmap(tmp,true) ;
return bm ;
}
}
#endregion
}
}