ASP.Net实现统计分析图
string [] DataName = { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
int [] Data = { 100, 20, 50, 60, 240, 20 };
/// <summary>
/// 利用office组建绘制柱图
/// </summary>
/// <param name="dataName">数据名称</param>
/// <param name="data">数据</param>
public void GraphicsColumnClustered( string [] dataName, int [] data )
{
///////////////////////////////////////////////////////////////////////
///以下使用Office Web Components绘制柱状图
//声明存储数据分类和数据值的字符串
string strDataName = "";
string strData = "";
for( int i = 0; i < Data.Length; i++ )
{
strDataName += dataName + ''\t'';
strData += data.ToString() + ''\t'';
}
//创建ChartSpace对象来放置图表
OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass();
//使用ChartSpace对象的Add方法创建图表
OWC.WCChart objChart = objCSpace.Charts.Add( 0 );
//指定图表的类型
//chChartTypeColumnClustered表示柱状图
//chChartTypeArea(面积图)、chChartTypeBarClustered(条形图)、chChartTypePie(饼图)、chChartTypeRadarLine(雷达线图)、chChartTypeSmoothLine(平滑曲线图)、chChartTypeDoughnut(环形图)
objChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
//设置图示说明
//主要包括图例(用颜色表示数据类型)、图题(图标的标题)、X与Y轴的数据说明(一般用来说明各轴上的数据单位)
//指定图表是否需要图例
objChart.HasLegend = true;
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption = "上半年月收入图";
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "万元";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "月份";
//添加数据
//设置Chart类对象的SeriesCollection属性。首先是用SeriesCollection的Add方法创建一组数据,然后使用SetData方法具体添加数据
//添加一组图表数据
objChart.SeriesCollection.Add( 0 );
//给定该组数据的名字
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimSeriesNames, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "上半年收入" );
//给定数据分类
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimCategories, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strDataName );
//给定数据值
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimValues, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strData );
//显示数据
//使用Chart类对象的ExportPicture方法将生成的图表创建为图片,然后显示
//输出GIF文件,参数为文件名、格式、图片大小
if( System.IO.File.Exists( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif" ) )
{
System.IO.File.Delete( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif" );
}
objCSpace.ExportPicture( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif", "GIF", 400, 300 );
//从生成的图片创建Bitmap对象,输出到Response输出流
Bitmap myPalette = new Bitmap( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif", true );
myPalette.Save( System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif );
myPalette.Dispose();
}
int [] Data = { 100, 20, 50, 60, 240, 20 };
/// <summary>
/// 利用office组建绘制柱图
/// </summary>
/// <param name="dataName">数据名称</param>
/// <param name="data">数据</param>
public void GraphicsColumnClustered( string [] dataName, int [] data )
{
///////////////////////////////////////////////////////////////////////
///以下使用Office Web Components绘制柱状图
//声明存储数据分类和数据值的字符串
string strDataName = "";
string strData = "";
for( int i = 0; i < Data.Length; i++ )
{
strDataName += dataName + ''\t'';
strData += data.ToString() + ''\t'';
}
//创建ChartSpace对象来放置图表
OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass();
//使用ChartSpace对象的Add方法创建图表
OWC.WCChart objChart = objCSpace.Charts.Add( 0 );
//指定图表的类型
//chChartTypeColumnClustered表示柱状图
//chChartTypeArea(面积图)、chChartTypeBarClustered(条形图)、chChartTypePie(饼图)、chChartTypeRadarLine(雷达线图)、chChartTypeSmoothLine(平滑曲线图)、chChartTypeDoughnut(环形图)
objChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
//设置图示说明
//主要包括图例(用颜色表示数据类型)、图题(图标的标题)、X与Y轴的数据说明(一般用来说明各轴上的数据单位)
//指定图表是否需要图例
objChart.HasLegend = true;
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption = "上半年月收入图";
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "万元";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "月份";
//添加数据
//设置Chart类对象的SeriesCollection属性。首先是用SeriesCollection的Add方法创建一组数据,然后使用SetData方法具体添加数据
//添加一组图表数据
objChart.SeriesCollection.Add( 0 );
//给定该组数据的名字
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimSeriesNames, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, "上半年收入" );
//给定数据分类
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimCategories, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strDataName );
//给定数据值
objChart.SeriesCollection[0].SetData( OWC.ChartDimensionsEnum.chDimValues, (int) OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strData );
//显示数据
//使用Chart类对象的ExportPicture方法将生成的图表创建为图片,然后显示
//输出GIF文件,参数为文件名、格式、图片大小
if( System.IO.File.Exists( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif" ) )
{
System.IO.File.Delete( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif" );
}
objCSpace.ExportPicture( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif", "GIF", 400, 300 );
//从生成的图片创建Bitmap对象,输出到Response输出流
Bitmap myPalette = new Bitmap( System.Web.HttpContext.Current.Server.MapPath( "" ) + @"\tmpFile.gif", true );
myPalette.Save( System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif );
myPalette.Dispose();
}