項目中牽涉到數據報表統計,客戶需要生成柱形圖進行統計。首先想到用OWC(Office Web Components),owc11控件是office圖表控件(owc10是officeXP中的組件,owc11為office2003的組件,組件路徑在:C:\Program Files\Common Files\Microsoft Shared\Web Components\11\owc11,幫助文件的路徑為C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052),調用它可以生成三維圖、柱狀圖、餅狀圖、趨勢圖和誤差圖等。)
要是想OWC生成柱形圖表,首先必須引用OWC11才能使用其中的方法。下面是我通過參考文檔實現的效果:(柱形圖效果)
下面是參考代碼:(僅供參考)
ChartSpaceowcChartSpace=newChartSpace();//創建ChartSpace對象來放置圖表
ChChartchart=owcChartSpace.Charts.Add(0);//在ChartSpace對象中添加圖表,Add方法返回chart對象
chart.Type=ChartChartTypeEnum.chChartTypeColumnClustered;//指定圖表的類型。類型由OWC.ChartChartTypeEnum枚舉值得到//Microsoft.Office.Interop.OWC.ChartChartTypeEnum
//指定圖表是否需要圖例 chart.HasLegend=true; //標題 chart.HasTitle=true; chart.Title.Caption="祝朋友們心想事成"; //x,y軸的圖示說明 chart.Axes[0].HasTitle=true; chart.Axes[0].Title.Caption="X:"+"月份"; chart.Axes[1].HasTitle=true; chart.Axes[1].Title.Caption="Y:"+"收入"; chart.SeriesCollection.Add(0);//添加一個series //給定值 chart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "3000\t4000\t5000\t6000"); //給定分類 chart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "3月份\t6月份\t9月份\t12月份"); //自定義柱形顏色 string[]colorString={"red","blue","yellow","green"}; for(inti=0;i<4;i++) { chart.SeriesCollection[0].Points[i].Interior.SetSolid(colorString[i]); } //表示柱形圖上的單個數據標志 Microsoft.Office.Interop.Owc11.ChDataLabelsdl=chart.SeriesCollection[0].DataLabelsCollection.Add(); dl.HasValue=true; //保存為gif圖片 stringfilename=DateTime.Now.ToString("yyyyMMddHHmmssff")+".gif"; owcChartSpace.ExportPicture(@"D:\"+filename,"GIF",500,320);