使用实例:
private DataTable dt = new DataTable();
private string urlPath = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dt = new DataTable();
dt.Columns.Add("UserName");
dt.Columns.Add("UserAge");
dt.Columns.Add("UserSex");
dt.Columns.Add("UserSite");
DataRow dr = dt.NewRow();
dr["UserName"] = "郑德才";
dr["UserAge"] = "27";
dr["UserSex"] = "男";
dr["UserSite"] = "http://www.zhengdecai.com";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["UserName"] = "旺旺";
dr["UserAge"] = "29";
dr["UserSex"] = "女";
dr["UserSite"] = "http://www.zhengdecai.cn";
dt.Rows.Add(dr);
dv = new DataView(dt);
urlPath = Server.MapPath("~/file/");
oWCChartInfo();
}
}
/// <summary>
/// 图标生成
/// </summary>
private void oWCChartInfo()
{
OWCChart oWCChart = new OWCChart();
oWCChart.PhaysicalImagePath = urlPath;
oWCChart.Title = "图形内容展示";
oWCChart.SeriesName = "";
oWCChart.PicHight = 300;
oWCChart.PicWidth = 500;
oWCChart.DataSource = dt;
Response.Write("<IMG alt=\"" + "" + "\" src=\"" + "file/" + oWCChart.CreateColumn() + "\" border=\"0\" style=\"float:left;\">");
Response.Write("<IMG alt=\"" + "" + "\" src=\"" + "file/" + oWCChart.CreatePie() + "\" border=\"0\" style=\"float:left;\">");
Response.Write("<IMG alt=\"" + "" + "\" src=\"" + "file/" + oWCChart.CreateBar() + "\" border=\"0\" style=\"float:left;\">");
}类库信息:
/// <summary>
/// OWCChart图表展示
/// </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[0].ToString() + '\t');
}
return strList.ToString();
}
private string GetValueStr(DataTable dt)
{
StringBuilder strList = new StringBuilder();
foreach (DataRow r in dt.Rows)
{
strList.Append(r[1].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(0);//在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[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 类别";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 数量";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定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[0].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(0);//在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(0);
//给定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[0].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(0);//在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[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 类别";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 数量";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
//给定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[0].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;
}
}显示效果:

以上类库内容来源互联网,站长稍作整理
评论列表: