C#调用office2003的OWC11组件生成报表统计图
2009-03-17 10:53
537 查看
owc11控件是microsoft office图表控件(owc10为ofiiceXP的组件、owc11为office2003的组件,组件的路径为C:/ProgramFiles/Common Files/Microsoft Shared/WebComponents/11/owc11,帮助文件的路径为C:/Program Files/Common Files/MicrosoftShared/Web Components/11/2052),调用它可以生成三维图、柱状图、饼状图、趋势图和误差图等。^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
首先必须添加引用owc11:在“com选项卡”中选择“misrosoft office 11.0 objectlibrary”或直接选择路径为C:/Program Files/Common Files/Microsoft Shared/WebComponents/11/owc11的owc11;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
接下来是自己写的对owc11操作的封装类,以便于在程序里调用。^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
具体代码及说明如下:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
[复制到剪贴板]
CODE:
using System;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using System.Data;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using System.Text;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using Microsoft.Office.Interop.Owc11;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
namespace Chat^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 星辰.Net技术社区^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// http://www.netcsharp.cn^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 2008-07-11^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public class ShowChart^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 属性^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _phaysicalimagepath;//图片存放路径^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _title; //图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _xtitle;//图片x座标名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _ytitle;//图片y座标名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _seriesname;//图例名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private int _picwidth;//图片宽度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private int _pichight;//图片高度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private DataTable _datasource;//图片数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string strCategory;//图片数据源的分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string strValue;//图片数据源的值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片存放路径^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string PhaysicalImagePath^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _phaysicalimagepath = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _phaysicalimagepath; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string Title^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _title = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _title; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string XTitle^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _xtitle = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _xtitle; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string YTitle^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _ytitle = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _ytitle; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图例名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string SeriesName^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _seriesname = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _seriesname; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片宽度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public int PicWidth^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _picwidth = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _picwidth; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片高度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public int PicHight^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _pichight = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _pichight; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public DataTable DataSource^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_datasource = value;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strCategory = GetColumnsStr(_datasource);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strValue = GetValueStr(_datasource);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _datasource; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源的分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string GetColumnsStr(DataTable dt)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
StringBuilder strList = new StringBuilder();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
foreach (DataRow r in dt.Rows)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strList.Append(r[0].ToString() + '/t');^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return strList.ToString();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源的值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string GetValueStr(DataTable dt)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
StringBuilder strList = new StringBuilder();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
foreach (DataRow r in dt.Rows)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strList.Append(r[1].ToString() + '/t');^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return strList.ToString();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 构造函数^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public ShowChart()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// TODO: 在此处添加构造函数逻辑^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public ShowChart(string PhaysicalImagePath, string Title, string XTitle, string YTitle, string SeriesName)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_phaysicalimagepath = PhaysicalImagePath;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_title = Title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_xtitle = XTitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_ytitle = YTitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_seriesname = SeriesName;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreateColumn()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = _title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Title.Font.Bold=true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Title.Font.Color="blue";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 样式设置^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//旋转^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Rotation = 360;//表示指定三维图表的旋转角度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//背景颜色^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.PlotArea.Interior.Color = "red";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//底座颜色^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.PlotArea.Floor.Interior.Color = "green";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Overlap = 50;//单个类别中标志之间的重叠量^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//x,y轴的图示说明^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].Title.Caption = "X : " + this._xtitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].Title.Caption = "Y : " + this._ytitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示柱形图上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreatePie()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表的类型^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = _title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示系列或趋势线上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasPercentage = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//图表绘图区的图例放置在右侧。^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.Ticks.ToString() + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreateLine()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//创建ChartSpace对象来放置图表^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeSmoothLine;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = this._title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定x,y轴的图示说明^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].Title.Caption = "X : " + this._xtitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].Title.Caption = "Y : " + this._ytitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
+(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
+(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示曲线上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 调用说明及范例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// 在要显示统计图的页面代码直接调用,方法类似如下:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// ShowChart chart=new ShowChart(); 创建对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.Title="标题";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.XTitle ="月份";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.YTitle ="数量";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.SeriesName="图例";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// string filepath=Server.MapPath(".")+"//ChartImages";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PhaysicalImagePath=filepath;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PicHight=320;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PicWidth=500;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.DataSource=GetData();//这是你的数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// Response.Write("");^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// this.Image1.ImageUrl=filepath+"//"+chart.CreateBar();//显示给图像控件。 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
效果图展示:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
1.柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
2.饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
3.曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
首先必须添加引用owc11:在“com选项卡”中选择“misrosoft office 11.0 objectlibrary”或直接选择路径为C:/Program Files/Common Files/Microsoft Shared/WebComponents/11/owc11的owc11;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
接下来是自己写的对owc11操作的封装类,以便于在程序里调用。^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
具体代码及说明如下:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
[复制到剪贴板]
CODE:
using System;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using System.Data;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using System.Text;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
using Microsoft.Office.Interop.Owc11;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
namespace Chat^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 星辰.Net技术社区^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// http://www.netcsharp.cn^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 2008-07-11^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public class ShowChart^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 属性^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _phaysicalimagepath;//图片存放路径^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _title; //图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _xtitle;//图片x座标名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _ytitle;//图片y座标名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string _seriesname;//图例名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private int _picwidth;//图片宽度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private int _pichight;//图片高度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private DataTable _datasource;//图片数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string strCategory;//图片数据源的分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string strValue;//图片数据源的值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片存放路径^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string PhaysicalImagePath^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _phaysicalimagepath = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _phaysicalimagepath; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string Title^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _title = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _title; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string XTitle^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _xtitle = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _xtitle; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string YTitle^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _ytitle = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _ytitle; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图例名称^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string SeriesName^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _seriesname = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _seriesname; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片宽度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public int PicWidth^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _picwidth = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _picwidth; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片高度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public int PicHight^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set { _pichight = value; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _pichight; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public DataTable DataSource^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
set^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_datasource = value;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strCategory = GetColumnsStr(_datasource);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strValue = GetValueStr(_datasource);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
get { return _datasource; }^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源的分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string GetColumnsStr(DataTable dt)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
StringBuilder strList = new StringBuilder();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
foreach (DataRow r in dt.Rows)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strList.Append(r[0].ToString() + '/t');^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return strList.ToString();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 图片数据源的值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
private string GetValueStr(DataTable dt)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
StringBuilder strList = new StringBuilder();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
foreach (DataRow r in dt.Rows)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
strList.Append(r[1].ToString() + '/t');^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return strList.ToString();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 构造函数^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public ShowChart()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// TODO: 在此处添加构造函数逻辑^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public ShowChart(string PhaysicalImagePath, string Title, string XTitle, string YTitle, string SeriesName)^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_phaysicalimagepath = PhaysicalImagePath;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_title = Title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_xtitle = XTitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_ytitle = YTitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
_seriesname = SeriesName;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreateColumn()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = _title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Title.Font.Bold=true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Title.Font.Color="blue";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 样式设置^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//旋转^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Rotation = 360;//表示指定三维图表的旋转角度^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Inclination = 10;//表示指定三维图表的视图斜率。有效范围为 -90 到 90^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//背景颜色^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.PlotArea.Interior.Color = "red";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//底座颜色^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.PlotArea.Floor.Interior.Color = "green";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// objChart.Overlap = 50;//单个类别中标志之间的重叠量^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//x,y轴的图示说明^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].Title.Caption = "X : " + this._xtitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].Title.Caption = "Y : " + this._ytitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示柱形图上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreatePie()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();//创建ChartSpace对象来放置图表 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表的类型^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = _title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示系列或趋势线上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasPercentage = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//图表绘图区的图例放置在右侧。^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.Ticks.ToString() + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 输出曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// 曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
/// ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
public string CreateLine()^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
{^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//创建ChartSpace对象来放置图表^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//在ChartSpace对象中添加图表,Add方法返回chart对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeSmoothLine;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//指定图表是否需要图例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasLegend = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定标题^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Title.Caption = this._title;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定x,y轴的图示说明^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[0].Title.Caption = "X : " + this._xtitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].HasTitle = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.Axes[1].Title.Caption = "Y : " + this._ytitle;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//添加一个series^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection.Add(0);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定series的名字^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
+(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, SeriesName);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定分类^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
+(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//给定值^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objChart.SeriesCollection[0].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//表示曲线上的单个数据标志^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
Microsoft.Office.Interop.Owc11.ChDataLabels dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
dl.HasValue = true;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
string strAbsolutePath = _phaysicalimagepath + "//" + filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
return filename;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#region 调用说明及范例^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// 在要显示统计图的页面代码直接调用,方法类似如下:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
//^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// ShowChart chart=new ShowChart(); 创建对象^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.Title="标题";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.XTitle ="月份";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.YTitle ="数量";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.SeriesName="图例";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// string filepath=Server.MapPath(".")+"//ChartImages";^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PhaysicalImagePath=filepath;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PicHight=320;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.PicWidth=500;^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// chart.DataSource=GetData();//这是你的数据源^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// Response.Write("");^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
// this.Image1.ImageUrl=filepath+"//"+chart.CreateBar();//显示给图像控件。 ^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
#endregion^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
}
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
效果图展示:^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
1.柱形图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
2.饼图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
3.曲线图^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
^xæ_7ÏñAwww.netcsharp.cn nQ9ù¤X=î
相关文章推荐
- 在ASP.NET(c#)中调用wsChart图表组件生成柱状图
- 利用c#+jquery+echarts生成统计报表(附源代码)
- c#+jquery+echarts生成统计报表
- .net调用OWC生成报表统计图总结 (转)
- C#调用iTextSharp组件生成PDF文件, 在VS2005下已经调试通过!
- C#.net使用DotNetCharting控件生成报表统计图
- 今天终于解决了用vb客户端调用C#生成的组件注册的问题了!
- C#直接调用rdl报表生成报表并打印
- C#.net使用DotNetCharting控件生成报表统计图--A
- C#生成Excel报表 用MyXls组件生成更完美
- .net调用OWC生成报表统计图总结
- 使用C#通过调用minitab的COM库自动化生成报表
- C#利用OWC组件生成数据报表
- 利用c#+jquery+echarts生成统计报表(附源代码)
- C#调用iTextSharp组件生成PDF文件
- C# 调用Excel组件生成excel文件
- C#利用OWC组件生成数据报表
- C#利用ZedDemo组件生成数据报表
- C#生成Excel报表 用MyXls组件生成更完美
- C#利用ZedDemo组件生成数据报表