1.引入owc对象
可 通过两种途径使C#支持OWC
A.安装Fontpage2003
B.从microsoft网站上下载OWC
在ASP.NET项目的“引入”中的“COM”项中选择“office web Components 11”就可以引入owc对象了。
2.引用OWC对象
using Microsoft.Office.Interop.Owc11;
3.新建 OWC对象
注:本例用的是一个交叉数据,如下表
缺陷完成数 缺陷未完成数 缺陷新建数 日期
20 30 10 2008-01-01
50 10 10 2008-01-02
20 30 10 2008-01-01
本例中要显示每天缺陷完成数、未完数、新建数情况
ChartSpace mychartSpace = new ChartSpace();
ChartSpace myspace = new ChartSpace();
//在图表空间内添加一个图表对象
ChChart mychart = mychartSpace.Charts.Add(0);
//设置图表类型,本例使用柱形
mychart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
//设置图表的一些属性
//是否需要图例
mychart.HasLegend = true;
//是否需要主题
mychart.HasTitle = true;
//主题内容
mychart.Title.Caption = "缺陷报告";
//设置x,y坐标
mychart.Axes[0].HasTitle = true;
mychart.Axes[0].Title.Caption = "X轴:天";
mychart.Axes[1].HasTitle = true;
mychart.Axes[1].Title.Caption = "Y轴:缺陷数";
//新建三个系列(相当于数据库交叉的行记录)
mychart.SeriesCollection.Add(0);mychart.SeriesCollection.Add(0);mychart.SeriesCollection.Add(0);
mychart.SeriesCollection[0].Caption = "未完成数";
mychart.SeriesCollection[1].Caption = "完成数";
mychart.SeriesCollection[2].Caption = "新建数";
//设置图表块的属性
//标题
string strDate = "";
string strCreateBugCount = "";
string strFinishBugCount = "";
string strUnFinishBugCount = "";
foreach(var P in "记录集")
{
//X坐标的值属性
strCreateBugCount += P.CreateBugCount.ToString()+"/t";
strFinishBugCount += P.FinishBugCount.ToString() +"/t";
strUnFinishBugCount += P.UnFinishBugCount.ToString()+"/t";
strDate += P.dDate.ToString().Substring(0, 9) + "/t";
}
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strDate);
//y坐标的值属性
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strUnFinishBugCount);
mychart.SeriesCollection[1].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strFinishBugCount);
mychart.SeriesCollection[2].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strCreateBugCount);
//Y轴数据
//生成图片
mychartSpace.ExportPicture(Server.MapPath(".") + @"/test.jpg", "jpg", 500, 350);
//加载图片
Image1.ImageUrl = Server.MapPath(".") + @"/test.jpg";