在.Net里用OWC11画统计图
来源:互联网 发布:python编程用什么软件 编辑:程序博客网 时间:2024/05/08 08:35
/// <summary>
/// 画统计图,可以支持多种统计图
/// </summary>
/// <param name="ccte">画图类型:折线,柱状图等</param>
/// <param name="Title">标题</param>
/// <param name="XTitle">X标题</param>
/// <param name="YTitle">Y标题</param>
/// <param name="SeriesName">图例说明文字</param>
/// <param name="XArray">X坐标说明</param>
/// <param name="Value">Y坐标说明</param>
/// <param name="Width">图宽</param>
/// <param name="Height">图高</param>
/// <param name="PicDesc">图名称</param>
/// <param name="ShowNum">是否显示值</param>
/// <returns></returns>
public string Chart(OWC11.ChartChartTypeEnum ccte,string Title,string XTitle,string YTitle,string[] SeriesName,string[] XArray,string[][] Value,int Width,int Height,string PicDesc,bool[] ShowNum)
{
if(Value.Length!=SeriesName.Length|| ShowNum.Length!=SeriesName.Length)
{
throw new ArgumentException("Invalid param");
}
OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass ();
//在ChartSpace对象中添加图表,Add方法返回chart对象
OWC11.ChChart objChart = objCSpace.Charts.Add (0);
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
objChart.Type = ccte;//OWC11.ChartChartTypeEnum.chChartTypeBarClustered;//.chChartTypeBarClustered3D;//..chChartTypeLine;
//指定图表是否需要图例
objChart.HasLegend = true;
//objChart.Legend.Position=OWC11.ChartLegendPositionEnum.chLegendPositionLeft;
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption= Title;
objChart.Title.Font.Bold=true;
objChart.Title.Font.Size=10;
objChart.Title.Font.Color="Maroon";
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = XTitle;
objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Scaling.SplitMinimum = 200;
objChart.Axes[1].Title.Caption = YTitle;
//计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strCategory="";
string strValue="";
for(int i=0;i<XArray.Length;i++)
{
strCategory+=XArray[i].ToString()+"/t";
}
int lenS=SeriesName.Length;
for(int i=0;i<lenS;i++)
{
for(int j=0;j<Value[i].Length;j++)
{
strValue+=Value[i][j]+"/t";
}
//添加series
objChart.SeriesCollection.Add(i);
switch(SeriesName[i].Trim())
{
case "月":
objChart.SeriesCollection[i].Line.Color="green";
objChart.SeriesCollection[i].Interior.Color="green";
objChart.SeriesCollection[i].Marker.Size=0;
break;
case "次":
objChart.SeriesCollection[i].Line.Color="yellow";
objChart.SeriesCollection[i].Interior.Color="yellow";
objChart.SeriesCollection[i].Marker.Size=0;
break;
case "天":
objChart.SeriesCollection[i].Line.Color="BlueViolet";
objChart.SeriesCollection[i].Interior.Color="BlueViolet";
objChart.SeriesCollection[i].Marker.Size=0;
break;
case "U":
objChart.SeriesCollection[i].Line.Color="black";
objChart.SeriesCollection[i].Interior.Color="black";
objChart.SeriesCollection[i].Marker.Size=0;
break;
case "推":
objChart.SeriesCollection[i].Line.Color="purple";
objChart.SeriesCollection[i].Interior.Color="purple";
objChart.SeriesCollection[i].Marker.Size=0;
break;
case "总":
objChart.SeriesCollection[i].Line.Color="blue";
objChart.SeriesCollection[i].Interior.Color="blue";
objChart.SeriesCollection[i].Marker.Style=OWC11.ChartMarkerStyleEnum.chMarkerStyleCircle;
break;
case "警":
//objChart.SeriesCollection[i].Type=OWC11.ChartChartTypeEnum.chChartTypeLine;
objChart.SeriesCollection[i].Line.Color="red";
objChart.SeriesCollection[i].Interior.Color="red";
objChart.SeriesCollection[i].Line.DashStyle=OWC11.ChartLineDashStyleEnum.chLineDashDot;
objChart.SeriesCollection[i].Marker.Size=0;
break;
default:
break;
}
//给定series的名字
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimSeriesNames,
+ (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, SeriesName[i]);
//给定分类
objChart.SeriesCollection[i].SetData (OWC11.ChartDimensionsEnum.chDimCategories,
+ (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
//给定值
objChart.SeriesCollection[i].SetData
(OWC11.ChartDimensionsEnum.chDimValues,
(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);
if(ShowNum[i])
{
//设置是否显示数值
objChart.SeriesCollection[i].DataLabelsCollection.Add();
objChart.SeriesCollection[i].DataLabelsCollection[0].HasValue = true;
objChart.SeriesCollection[i].DataLabelsCollection[0].Font.Color="Maroon";
}
strValue="";
}
string strAbsolutePath = (System.Configuration.ConfigurationSettings.AppSettings["SSP.Path"].ToString())+PicDesc+".gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF", Width, Height);
return System.Configuration.ConfigurationSettings.AppSettings["SSP.DNS"].ToString()+PicDesc+".gif"+"?rnd="+System.Guid.NewGuid().ToString();
}
- 在.Net里用OWC11画统计图
- 在Asp.net中利用OWC11画统计图(柱状图,饼状图及线状图等)及补充
- 在Asp.net中利用OWC11画统计图(柱状图,饼状图及线状图等)及补充
- 在Asp.net中利用OWC11画统计图(柱状图,饼状图及线状图等)及补充
- 在Asp.net中利用OWC11画统计图(柱状图,饼状图及线状图等)及补充 .
- 用net和owc11在画句柄时遇到的问题
- 一个.net调用Office.Interop.owc11实现统计图功能的类
- asp.net用Gdi画财务统计图源码.rar
- 在C#中使用owc11 画折线图
- 在C#中使用owc11 画折线图 .
- 解决方案:使用OWC11成生统计图时遇到的问题
- C#调用office2003的OWC11组件生成报表统计图
- android在代码里直接画出环形统计图
- 如何在统计图超链接里调用JavaScript函数
- asp.net owc11生成图表
- 用owc11绘制曲线图
- asp.net owc11生成图表(VB.NET)
- 在ASP.NET中使用OWC创建统计图
- biosdisk的用法
- 人在江湖飘
- 设计素材
- 在ASP.NET(C#)中使用Oralce Object For OLE 2.3连接Oracle 8.0.5数据库!
- 连接SQLServer数据库
- 在.Net里用OWC11画统计图
- Three Ways to Inject Your Code into Another Process
- 实现自定义的下载
- [转帖]XML轻松学习手册
- Java中调用外部命令
- CVS-个人Q&A记录
- 考研 态度 误区
- 【转载】JAVA代码编写的30条建议
- 让Media Player支持RM文件