/// <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); }
/// <summary> /// 创建图表 /// </summary> /// <returns></returns> public bool Create() { //声明对象 Microsoft.Office.Interop.Owc11.ChartSpace ThisChart = new Microsoft.Office.Interop.Owc11.ChartSpace();// .ChartSpaceClass(); Microsoft.Office.Interop.Owc11.ChChart ThisChChart = ThisChart.Charts.Add(0); Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = ThisChChart.SeriesCollection.Add(0); //显示图例 ThisChChart.HasLegend = true; //显示标题选项 ThisChChart.HasTitle = true; ThisChChart.Title.Font.Name = "黑体"; ThisChChart.Title.Font.Size = 14; ThisChChart.Title.Caption = m_Title; //x,y轴说明 ThisChChart.Axes[0].HasTitle = true; ThisChChart.Axes[0].Title.Font.Name = "黑体"; ThisChChart.Axes[0].Title.Font.Size = 12; ThisChChart.Axes[0].Title.Caption = m_AxesXTitle; ThisChChart.Axes[1].HasTitle = true; ThisChChart.Axes[1].Title.Font.Name = "黑体"; ThisChChart.Axes[1].Title.Font.Size = 12; ThisChChart.Axes[1].Title.Caption = m_AxesYTitle; //图表类型 ThisChChart.Type = (Microsoft.Office.Interop.Owc11.ChartChartTypeEnum)m_Type; //旋转 ThisChChart.Rotation = 360; ThisChChart.Inclination = 10; //背景色 ThisChChart.PlotArea.Interior.Color = "red"; //底座色 ThisChChart.PlotArea.Floor.Interior.Color = "green"; //ThisChChart.Overlap = 50; //给定series的名字 ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames, Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), m_SeriesName); //给定分类 ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories, Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), m_Category); //给定值 ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), m_Value); Microsoft.Office.Interop.Owc11.ChDataLabels dl = ThisChChart.SeriesCollection[0].DataLabelsCollection.Add(); dl.HasValue = true; //dl.HasPercentage = true; //导出图像文件 try { if (string.IsNullOrEmpty(m_FileName)) { m_FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".gif"; } ThisChart.ExportPicture(m_SavePath + "//" + m_FileName, "gif", m_PicWidth, m_PicHeight); return(true); } catch (Exception ex) { throw ex; } }