您的位置:首页 > 其它

OWC组件生成饼状图

2012-03-29 13:55 162 查看
1、介绍和思路请参照上一篇
  /article/7064418.html
2、前台代码
  <img alt="" src="temp.gif" style="width: 600px; height: 450px" />
3、后台代码
  3.1、项目添加引用 Microsoft Office Web Components 11.0。
  3.2、在文件里面引用如下

using Microsoft.Office.Interop.Owc11;//Owc组件

using System.Data.Sql;
using System.Data.SqlClient;using System.Configuration;
using System.Data;


  3.3、具体程序代码

namespace GenerateCharts
{
public partial class Pie : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//创建图表空间
ChartSpace myspace = new ChartSpace();
//添加一个图表对象
ChChart mychart = myspace.Charts.Add(0);
mychart.Type = ChartChartTypeEnum.chChartTypePie;//饼形
//mychart.Type = ChartChartTypeEnum.chChartTypeBarClustered;//条形图
13             //mychart.Type = ChartChartTypeEnum.chChartTypeLine;//折线图
14             //mychart.Type = ChartChartTypeEnum.chChartTypeArea;//面积图
15             //mychart.Type = ChartChartTypeEnum.chChartTypeArea3D;//3D面积图
16             //mychart.Type = ChartChartTypeEnum.chChartTypeBar3D;//3D条形图
17             //mychart.Type = ChartChartTypeEnum.chChartTypeColumn3D;//3D柱形图
18             //...等

//设置表的相关属性
mychart.HasLegend = true;
mychart.HasTitle = true;
mychart.Title.Caption = "员工信息图表";

// 连接并打开数据库
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
sqlcon.Open();
string strsqls = "select 籍贯, count(籍贯) as 人数 from tb_ygxx group by 籍贯";
SqlDataAdapter adsa = new SqlDataAdapter(strsqls, sqlcon);
DataSet adds = new DataSet();
adsa.Fill(adds);

if (adds.Tables[0].Rows.Count>0)
{
string strDataName = "";
string strData = "";
//添加图表块
mychart.SeriesCollection.Add(0);
//添加图表数据
for (int j = 0; j < adds.Tables[0].Rows.Count; j++)
{
if (j == adds.Tables[0].Rows.Count - 1)
{
strDataName += adds.Tables[0].Rows[j][0].ToString();
}
else
{
strDataName += adds.Tables[0].Rows[j][0].ToString() + "\t";
}
strData += adds.Tables[0].Rows[j][1].ToString() + "\t";
}
//设置图表块属性
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strDataName);
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strData);
//设置百分比
ChDataLabels labels = mychart.SeriesCollection[0].DataLabelsCollection.Add();
labels.HasPercentage = true;
}
sqlcon.Close();
//生成图表
myspace.ExportPicture(Server.MapPath(".") + @"\temp.gif", "gif", 600, 450);
}
}
}


4、效果图如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: