当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  asp.net中调用Office来制作3D统计图

 asp.net中调用Office来制作3D统计图

点击次数:29 次 发布日期:2008-11-26 14:13:12 作者:源代码网
源代码网推荐     
源代码网推荐    1、首先下载owc11 COM组件
源代码网推荐  
源代码网推荐  
源代码网推荐    2、注册owc11
源代码网推荐  
源代码网推荐    在工程中添加 C:Program FilesCommon FilesMicrosoft SharedWeb Components11 文件下的owc11.dll引用
源代码网推荐  
源代码网推荐    3、在工程中添加
源代码网推荐  
源代码网推荐    using OWC11;
源代码网推荐  
源代码网推荐    4、开始coding 举例如下:
源代码网推荐  
源代码网推荐  
源代码网推荐     public class ChartFactory
源代码网推荐    {
源代码网推荐    public ChartFactory()
源代码网推荐    {
源代码网推荐    InitTypeMap();
源代码网推荐    //
源代码网推荐    // TODO: 在此处添加构造函数逻辑
源代码网推荐    //
源代码网推荐    }
源代码网推荐    protected System.Web.UI.WebControls.Image imgHondaLineup;
源代码网推荐    private string[] chartCategoriesArr;
源代码网推荐    private string[] chartValuesArr;
源代码网推荐    private OWC11.ChartChartTypeEnum chartType = OWC11.ChartChartTypeEnum.chChartTypeColumn3D;//默认值
源代码网推荐    private static Hashtable chartMap = new Hashtable();
源代码网推荐    private static string chartTypeCh = "垂直柱状图" ;
源代码网推荐    private static string chartTitle = "";
源代码网推荐  
源代码网推荐    private void InitTypeMap()
源代码网推荐    {
源代码网推荐    chartMap.Clear();
源代码网推荐    OWC11.ChartChartTypeEnum[] chartTypes = new OWC11.ChartChartTypeEnum[]{ ChartChartTypeEnum.chChartTypeColumnClustered,
源代码网推荐    ChartChartTypeEnum.chChartTypeColumn3D,
源代码网推荐    ChartChartTypeEnum.chChartTypeBarClustered,
源代码网推荐    ChartChartTypeEnum.chChartTypeBar3D,
源代码网推荐    ChartChartTypeEnum.chChartTypeArea,
源代码网推荐    ChartChartTypeEnum.chChartTypeArea3D,
源代码网推荐    ChartChartTypeEnum.chChartTypeDoughnut,
源代码网推荐    ChartChartTypeEnum.chChartTypeLineStacked,
源代码网推荐    ChartChartTypeEnum.chChartTypeLine3D,
源代码网推荐    ChartChartTypeEnum.chChartTypeLineMarkers,
源代码网推荐    ChartChartTypeEnum.chChartTypePie,
源代码网推荐    ChartChartTypeEnum.chChartTypePie3D,
源代码网推荐  
源代码网推荐  
源代码网推荐     ChartChartTypeEnum.chChartTypeRadarSmoothLine,
源代码网推荐    ChartChartTypeEnum.chChartTypeSmoothLine};
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    string[] chartTypesCh = new string [] {"垂直柱状统计图","3D垂直柱状统计图","水平柱状统计图","3D水平柱状统计图","区域统计图","3D区域统计图","中空饼图","折线统计图","3D折线统计图","折线带点统计图","饼图","3D饼图","网状统计图","弧线统计图"};
源代码网推荐  
源代码网推荐  
源代码网推荐     for(int i=0;i<chartTypes.Length;i++)
源代码网推荐    {
源代码网推荐    chartMap.Add(chartTypesCh[i],chartTypes[i]);
源代码网推荐    }
源代码网推荐    }
源代码网推荐    public ChartSpaceClass BuildCharts ()
源代码网推荐    {
源代码网推荐    string chartCategoriesStr = String.Join (" ", chartCategoriesArr);
源代码网推荐    string chartValuesStr = String.Join (" ", chartValuesArr);
源代码网推荐  
源代码网推荐    OWC11.ChartSpaceClass oChartSpace = new OWC11.ChartSpaceClass ();
源代码网推荐  
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    // Give pie and doughnut charts a legend on the bottom. For the rest of
源代码网推荐    // them let the control figure it out on its own.
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐  
源代码网推荐    chartType = (ChartChartTypeEnum)chartMap[chartTypeCh];
源代码网推荐  
源代码网推荐    if (chartType == ChartChartTypeEnum.chChartTypePie ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypePie3D ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypeDoughnut)
源代码网推荐    {
源代码网推荐    oChartSpace.HasChartSpaceLegend = true;
源代码网推荐    oChartSpace.ChartSpaceLegend.Position = ChartLegendPositionEnum.chLegendPositionBottom;
源代码网推荐    }
源代码网推荐  
源代码网推荐    oChartSpace.Border.Color = "blue";
源代码网推荐    oChartSpace.Charts.Add(0);
源代码网推荐    oChartSpace.Charts[0].HasTitle = true;
源代码网推荐    oChartSpace.Charts[0].Type = chartType;
源代码网推荐    oChartSpace.Charts[0].ChartDepth = 125;
源代码网推荐    oChartSpace.Charts[0].AspectRatio = 80;
源代码网推荐    oChartSpace.Charts[0].Title.Caption = chartTitle;
源代码网推荐    oChartSpace.Charts[0].Title.Font.Bold = true;
源代码网推荐  
源代码网推荐    oChartSpace.Charts[0].SeriesCollection.Add(0);
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection.Add ();
源代码网推荐  
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    // If you"re charting a pie or a variation thereof percentages make a lot
源代码网推荐    // more sense than values...
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐  
源代码网推荐  
源代码网推荐     if (chartType == ChartChartTypeEnum.chChartTypePie ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypePie3D ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypeDoughnut)
源代码网推荐    {
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage = true;
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue = false;
源代码网推荐    }
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    // Not so for other chart types where values have more meaning than
源代码网推荐    // percentages.
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    else
源代码网推荐    {
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage = false;
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue = true;
源代码网推荐    }
源代码网推荐    
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    // Plug your own visual bells and whistles here
源代码网推荐    // ------------------------------------------------------------------------
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].Caption = String.Empty;
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Name = "verdana";
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Size = 10;
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Bold = true;
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Color = "red";
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position = ChartDataLabelPositionEnum.chLabelPositionCenter;
源代码网推荐    
源代码网推荐    if (chartType == ChartChartTypeEnum.chChartTypeBarClustered ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypeBar3D ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypeColumnClustered ||
源代码网推荐    chartType == ChartChartTypeEnum.chChartTypeColumn3D)
源代码网推荐    {
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position = ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
源代码网推荐    }
源代码网推荐    
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimCategories,
源代码网推荐    Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartCategoriesStr);
源代码网推荐  
源代码网推荐    oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimValues,
源代码网推荐    Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartValuesStr);
源代码网推荐  
源代码网推荐    return oChartSpace;
源代码网推荐    }
源代码网推荐  
源代码网推荐    #region 属性设置
源代码网推荐    public string[] chartCategoriesArrValue
源代码网推荐    {
源代码网推荐    get
源代码网推荐    {
源代码网推荐    return chartCategoriesArr;
源代码网推荐    }
源代码网推荐    set
源代码网推荐    {
源代码网推荐    chartCategoriesArr = value;
源代码网推荐    }
源代码网推荐    }
源代码网推荐  
源代码网推荐    public string[] chartValuesArrValue
源代码网推荐    {
源代码网推荐    get
源代码网推荐    {
源代码网推荐    return chartValuesArr;
源代码网推荐  
源代码网推荐  
源代码网推荐     }
源代码网推荐    set
源代码网推荐    {
源代码网推荐    chartValuesArr = value;
源代码网推荐    }
源代码网推荐    }
源代码网推荐    public string chartTypeValue
源代码网推荐    {
源代码网推荐    get
源代码网推荐    {
源代码网推荐    return chartTypeCh;
源代码网推荐    }
源代码网推荐    set
源代码网推荐    {
源代码网推荐    chartTypeCh = value;
源代码网推荐    }
源代码网推荐    }
源代码网推荐    public string chartTitleValue
源代码网推荐    {
源代码网推荐    get
源代码网推荐    {
源代码网推荐    return chartTitle;
源代码网推荐    }
源代码网推荐    set
源代码网推荐    {
源代码网推荐    chartTitle = value;
源代码网推荐    }
源代码网推荐    }
源代码网推荐    #endregion
源代码网推荐    }
源代码网推荐  
源代码网推荐    //调用 首先需要在页面上放置一个Image来显示产生的统计图
源代码网推荐  
源代码网推荐    public void ShowChart()
源代码网推荐    {
源代码网推荐  
源代码网推荐    //初始化赋值
源代码网推荐    chartFactory.chartCategoriesArrValue = chartCategories;
源代码网推荐    chartFactory.chartValuesArrValue = chartValues;
源代码网推荐    chartFactory.chartTitleValue = chartTitle;
源代码网推荐    chartFactory.chartTypeValue = chartType;
源代码网推荐  
源代码网推荐    OWC11.ChartSpaceClass oChartSpace = chartFactory.BuildCharts();
源代码网推荐    string path = Server.MapPath(".") + @"imagesChart.jpeg"; //产生图片并保存 页可以是png gif图片
源代码网推荐    oChartSpace.ExportPicture(path,"jpeg", 745, 500);
源代码网推荐    Image1.ImageUrl = path; // 显示统计图
源代码网推荐    }
源代码网推荐  
源代码网推荐  
源代码网推荐    // 保存统计图请参照上一篇文章
源代码网推荐  
源代码网推荐    //由于每次生成的统计图都会覆盖原来的图片所以有必要的话可以用日期加时间的方式来作为图片的名字,但是这样将会产生很多图片需及时处理,如不需要只需取同名覆盖原来图片即可。
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华