您的位置:首页 > 编程语言 > C#

C#调用office2003的OWC11组件生成报表统计图

2009-03-17 10:53 483 查看
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=î
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息