首先添加owc的引用,分别计算出分类和值即可:
代码如下:
// 计算数据
/* categories 和 values 可以用tab分割的字符串来表示 */
string strSeriesName = " 图例 1 " ;
string strCategory = " 1 " + ' ' + " 2 " + ' ' + " 3 " + ' ' + " 4 " + ' ' + " 5 " + ' ' + " 6 " + ' ' ;
string strValue = " 9 " + ' ' + " 8 " + ' ' + " 4 " + ' ' + " 10 " + ' ' + " 12 " + ' ' + " 6 " + ' ' ;
// 创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();
// 在ChartSpace对象中添加图表,Add方法返回chart对象
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add( 0 );
// 指定图表的类型
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;
// 指定图表是否需要图例
objChart.HasLegend = true ;
// 标题
objChart.HasTitle = true ;
objChart.Title.Caption = " 维修申请派工分析 " ;
// 添加一个series
objChart.SeriesCollection.Add( 0 );
// 给定series的名字
objChart.SeriesCollection[ 0 ].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strSeriesName);
// 给定分类
objChart.SeriesCollection[ 0 ].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strCategory);
// 给定值
objChart.SeriesCollection[ 0 ].SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),strValue);
// 输出成GIF文件
string strAbsolutePath = (Server.MapPath( " . " )) + " /test.gif " ;
objCSpace.ExportPicture(strAbsolutePath, " GIF " , 700 , 400 );
string strImageTag = " <img src=' " + strAbsolutePath + " '/> " ;
ChartHolder.Controls.Add( new LiteralControl(strImageTag));
技术参考:孟宪会之精彩世界】-- 在ASP.NET中使用Office Web Components (OWC)创建统计图