using
System;
using System.Data;
using System.Text;
using System.Drawing;
namespace test.OWCC
{
/// <summary>
/// 封装OWC做统计图
/// </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 test.OWCC
{
/// <summary>
/// 封装OWC做统计图
/// </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
}
}