使用实例:
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; } }
显示效果:
以上类库内容来源互联网,站长稍作整理
评论列表: