做了一个小分析软件,要用到EXCEL的散点图和趋势线,出于时间考虑用了OWC11(Office Web Components),作为一个轻量级的组件,功能算是很足够用了,觉得遗憾的就是:无法得到趋势线函数,不能设置趋势线函数的展现,只能是选择显示或隐藏函数。
下次还是得选用更强大的控件组为好。
值得一提的是,OWC11是OFFICE2003的控件组,但在OFFICE2007上,微软把这个控件给取消了,并且不再提供升级。
摘抄一点网上的代码(关于散点图和趋势线的):
//创建一个图形容器对象 ChartSpace objCSpace = new ChartSpaceClass(); //在图形容器中增加一个图形对象 ChChart objChart = objCSpace.Charts.Add(0); //将图形的类型设置为柱状图的一种 objChart.Type = ChartChartTypeEnum.chChartTypeScatterMarkers; objChart.HasLegend = true;//指定图表是否需要图例 objChart.HasTitle = true;//给定标题 objChart.Title.Caption = chartName_; //图表名称 objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = X_.caption; //横轴名称 objChart.Axes[1].HasTitle = true; objChart.Axes[1].Title.Caption = Y_.caption; //纵轴名称 //添加一个series objChart.SeriesCollection.Add(0); //给定series的名字 objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "设定值"); //给定X值 objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimXValues, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, X_.value); //给定Y值 objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimYValues, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, Y_.value); //增加趋势线 objChart.SeriesCollection[0].Trendlines.Add(); //是否显示函数 objChart.SeriesCollection[0].Trendlines[0].IsDisplayingEquation = true; //是否显示平方 objChart.SeriesCollection[0].Trendlines[0].IsDisplayingRSquared = true; //设置趋势线标题 objChart.SeriesCollection[0].Trendlines[0].Caption = "标准曲线"; //设置趋势线类型, //OWC提供了4种趋势线类型,具体可参看帮助的ChartTrendlineTypeEnum枚举 objChart.SeriesCollection[0].Trendlines[0].Type = ChartTrendlineTypeEnum.chTrendlineTypeLinear; objChart.SeriesCollection[0].Trendlines[0].Line.Miter = ChartLineMiterEnum.chLineMiterBevel; //显示数据,创建GIF文件的相对路径. string imageFile = fileName_; objCSpace.ExportPicture(imageFile, "GIF", 600, 400); return imageFile;
图:
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
QQ咨询|关于我们|Archiver|手机版|小黑屋|( 辽ICP备15012455号-4 ) Powered by 期权论坛 X3.2 © 2001-2016 期权工具网&期权论坛 Inc.
下载期权论坛手机APP