当前位置:中国站长下载文章中心网页编程.NET编程 → asp.net中调用Office来制作3D统计图

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

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 8:52:04
    
    1、首先下载owc11 COM组件
  
  
    2、注册owc11
  
    在工程中添加 C:\Program Files\Common Files\Microsoft Shared\Web Components\11 文件下的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 ("\t", chartCategoriesArr);
    string chartValuesStr = String.Join ("\t", 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 = ChartDataLa

[1] [2]  下一页