效果图:手把手教程:原理:OWC是OfficeWebCompent的缩写,即Microsoft的OfficeWeb组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE6和Office2000/XP/2003),那么就有能力利用OfficeWeb组件提供一个交互式图形开发环境。这种模式下,客户端工作站将在整个任务中分担很大的比重。理论上说Excel能做的图都可以通过OWC画。第一步:右键点击网站根目录引用。如图所示:第二步:点击“添加引用”后弹出一个窗口,添加OWC的引用。如图所示:点“确定”。第三步:代码中引用Microsoft.Office.Interop.Owc11。全部代码后台代码:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;//添加数据操作引用usingMicrosoft.Office.Interop.Owc11;//添加Office组件引用publicpartialclassOWCdrawing:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){//连接数据库并获取特定字符串stringstrSeriesName=图例1;stringConnectString=Server=(local);DataBase=web;Uid=sa;Pwd=sa;stringSql=SELECTmonth,AllcountFROMChart;SqlConnectionmyConn=newSqlConnection(ConnectString);myConn.Open();SqlDataAdapterDa=newSqlDataAdapter(Sql,myConn);DataSetds=newDataSet();Da.Fill(ds);//存放月string[]MonNum=newstring[12];//存放数据string[]MonCount=newstring[12];//为数组赋值for(inti=0;ids.Tables[0].Rows.Count;i++){MonNum[i]=ds.Tables[0].Rows[i][0].ToString();MonCount[i]=ds.Tables[0].Rows[i][1].ToString();}//为x轴指定特定字符串,以便显示数据stringstrXdata=String.Empty;foreach(stringstrDatainMonNum){strXdata+=strData+\t;}stringstrYdata=String.Empty;//为y轴指定特定的字符串,以便与x轴相对应foreach(stringstrValueinMonCount){strYdata+=strValue+\t;}//创建ChartSpace对象来放置图表ChartSpacelaySpace=newChartSpaceClass();//在ChartSpace对象中添加图表ChChartInsertChart=laySpace.Charts.Add(0);//指定绘制图表的类型。类型可以通过OWC.ChartChartTypeEnum枚举值得到//InsertChart.Type=ChartChartTypeEnum.chChartTypeLine;//折线图//InsertChart.Type=ChartChartTypeEnum.chChartTypeArea;//面积图//InsertChart.Type=ChartChartTypeEnum.chChartTypeBarClustered;//条形图InsertChart.Type=ChartChartTypeEnum.chChartTypeColumnClustered;//柱形图//指定图表是否需要图例标注InsertChart.HasLegend=false;InsertChart.HasTitle=true;//为图表添加标题InsertChart.Title.Caption=2006年清清月儿每个月花销流水账;//标题名称//为x,y轴添加图示说明InsertChart.Axes[0].HasTitle=true;InsertChart.Axes[0].Title.Caption=;//月份InsertChart.Axes[1].HasTitle=true;InsertChart.Axes[1].Scaling.SplitMinimum=200;InsertChart.Axes[1].Title.Caption=数量;//添加一个series系列InsertChart.SeriesCollection.Add(0);//给定series系列的名字InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames,+(int)ChartSpecialDataSourcesEnum.chDataLiteral,strSeriesName);//给定分类InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,+(int)ChartSpecialDataSourcesEnum.chDataLiteral,strXdata);//给定值InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,(int)ChartSpecialDataSourcesEnum.chDataLiteral,strYdata);//输出文件.stringstrAbsolutePath=(Server.MapPath(.))+\\ShowData.gif;laySpace.ExportPicture(strAbsolutePath,GIF,400,250);//创建GIF文件的相对路径.stringstrRelativePath=./ShowData.gif;//把图片添加到placeholder中,并在页面上显示stringstrImageTag=IMGSRC='+strRelativePath+'/;this.PlaceHolder1.Controls.Add(newLiteralControl(strImageTag));}}前台代码:%@PageLanguage=C#AutoEventWireup=trueCodeFile=OWCdrawing.aspx.csInherits=OWCdrawing%!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//EN==servertitle清清月儿=form1runat=serverdivstyle=text-align:lefttablestyle=width:600pxtrtdcolspan=3style=height:20pxstrong怎么样在ASP.NET2.0中使用OWC组件画图/strong/td/trtrtdcolspan=3rowspan=2style=height:21pxasp:PlaceHolderID=PlaceHolder1runat=server/asp:PlaceHolder/td/trtr/tr/table/div/form/body/html数据库SQL脚本:USE[web]GO/******对象:Table[dbo].[Chart]脚本日期:03/27/200722:26:00******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[Chart]([id][int]IDENTITY(1,1)NOTNULL,[month][smallint]NULL,[Allcount][int]NULL)ON[PRIMARY]在数据库建好表以后要自己手动假想有12条数据,手动添加,最终结果类似下图:后台程序说明:最关键就是InsertChart.Type=ChartChartTypeEnum.chChartTypeColumnClustered;你可以在ChartChartTypeEnum后点出其他方法。如图所示:下面列出的是其他类型图:折线图:面积图:条形图:OWC什么图形都可以画,还能画立体的,请大家自己尝试。可以参考OWC手册,具体位置:C:\ProgramFiles\CommonFiles\MicrosoftShared\WebComponents\11\2052\OWCVBA11.CHM