Example #1
0
        /// <summary>
        /// 饼图
        /// </summary>
        /// <returns></returns>
        public string CreatePie()
        {
            var objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpace(); //创建ChartSpace对象来放置图表
            var 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
            var 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);


            //表示系列或趋势线上的单个数据标志
            var dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();

            dl.HasValue      = true;
            dl.HasPercentage = true;
            //图表绘图区的图例放置在右侧。
            //			dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;

            var filename        = DateTime.Now.Ticks.ToString() + ".gif";
            var strAbsolutePath = _phaysicalimagepath + "\\" + filename;

            objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.

            return(filename);
        }
Example #2
0
        /// <summary>
        /// 条形图
        /// </summary>
        /// <returns></returns>
        public string CreateBar()
        {
            var objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpace(); //创建ChartSpace对象来放置图表
            var 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
            var 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);

            var dl = objChart.SeriesCollection[0].DataLabelsCollection.Add();
            dl.HasValue = true;
            //			dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;


            var filename        = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".gif";
            var strAbsolutePath = _phaysicalimagepath + "\\" + filename;
            objCSpace.ExportPicture(strAbsolutePath, "GIF", _picwidth, _pichight);//输出成GIF文件.

            return(filename);
        }
Example #3
0
        /// <summary>
        /// 条形图
        /// </summary>
        /// <returns></returns>
        public string CreateBar()
        {
            Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpace();//创建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;
            }
        }
Example #5
0
        /// <summary>
        /// 饼图
        /// </summary>
        /// <returns></returns>
        public string CreatePie()
        {
            Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpace();//创建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;
        }