OWC组件生成折线图

1、介绍和思路请参照
  http://www.cnblogs.com/XuebinDing/archive/2012/03/29/2422980.html

2、前台代码
  <img alt="" src="temp.gif" style="width: 600px; height: 450px" />

3、后台代码
  3.1、项目添加引用
  Microsoft Office Web Components 11.0。
  Microsoft Office Template an Media Control 1.0 Type Library。

  3.2、选择“引用”文件夹中引入的dll:OWC11,鼠标右键选择属性,把“嵌入互操作类型”设置为False。
  

  3.2、在文件里面引用如下  

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

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

  3.3、具体程序代码

 1 namespace GenerateCharts
2 {
3 public partial class Line : System.Web.UI.Page
4 {
5 protected void Page_Load(object sender, EventArgs e)
6 {
7 //连接并且打开数据库
8 SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
9 sqlcon.Open();
10 string strsqls = "SELECT 籍贯, COUNT(籍贯) AS 人数 FROM tb_ygxx GROUP BY 籍贯";
11 SqlDataAdapter adsa = new SqlDataAdapter(strsqls, sqlcon);
12 DataSet adds = new DataSet();
13 adsa.Fill(adds);
14 //为x轴y轴指定特定字符串,以便显示数据
15 string strXdata = String.Empty;
16 string strYdata = String.Empty;
17 if (adds.Tables[0].Rows.Count > 0)
18 {
19 for (int i = 0; i < adds.Tables[0].Rows.Count; i++)
20 {
21 strXdata = strXdata + adds.Tables[0].Rows[i][0].ToString() + "\t";
22 strYdata = strYdata + adds.Tables[0].Rows[i][1].ToString() + "\t";
23 }
24 }
25
26 //创建ChartSpace对象来放置图表
27 ChartSpace laySpace = new ChartSpaceClass();
28
29 //在ChartSpace对象中添加图表
30 ChChart InsertChart = laySpace.Charts.Add(0);
31
32 //指定绘制图表的类型。类型可以通过OWC.ChartChartTypeEnum枚举值得到
33 InsertChart.Type = ChartChartTypeEnum.chChartTypeLine; //折线图
34             //指定图表是否需要图例标注
35 InsertChart.HasLegend = false;
36 InsertChart.HasTitle = true;//为图表添加标题
37 InsertChart.Title.Caption = "员工信息图表";//标题名称
38             //为x,y轴添加图示说明
39 InsertChart.Axes[0].HasTitle = true;
40 InsertChart.Axes[0].Title.Caption = "籍贯";//x轴说明
41 InsertChart.Axes[1].HasTitle = true;
42 InsertChart.Axes[1].Title.Caption = "人数";//y轴说明
43
44             //添加一个series系列
45 InsertChart.SeriesCollection.Add(0);
46 ////给定series系列的名字
47 //InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "员工信息图表");
48             //给定分类
49 InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);
50 //给定值
51 InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);
52 //输出文件.
53 laySpace.ExportPicture(Server.MapPath(".") + @"\temp.gif", "gif", 600, 450);
54 }
55 }
56 }

4、效果图如下

posted @ 2012-03-29 15:58  XuebinDing  阅读(1535)  评论(1编辑  收藏  举报