1、首先下载owc11:owc11
2、引用OWC:打开"解决方案资源管理器"面板,鼠标右键单击"引用",选择"添加引用"菜单,在弹出的"添加引用"对话框中单击"COM"卡片,找到"Microsoft Office Web Components 10.0(office 2003是11.0)",单击"选择"和"确定"按钮,OWC就被添加到了引用中。
3、建立一个pic.aspx文件,aspx代码如下:
<script language="javascript" type="text/javascript" src="/js/Calendar30.js"></script>
选择开始日期和结束日期。如果时间范围超过365则显示年表,如果时间范围超过30则显示月份表,如果超过1则显示日期表,否则显示小时表。<br />
开始日期:<input id="s" type="text" value="<%= Request.QueryString["s"]%>" onclick="fillDay(this)" >结束日期:<input id="e" value="<%= Request.QueryString["e"]%>" type="text" onclick="fillDay(this)" /><input type="button" value="查看" onclick="location.href='?s='+$F('s')+'&e='+$F('e')" /><br />
<asp:placeholder id="ChartHolder" runat="server"></asp:placeholder>
后台代码:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Office.Interop.Owc11;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
public partial class pic : System.Web.UI.Page
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
protected void Page_Load(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (!IsPostBack && Request.QueryString["s"] != null && Request.QueryString["e"] != null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string file;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DateTime s = DateTime.Parse(Request.QueryString["s"]);
DateTime et = DateTime.Parse(Request.QueryString["e"]);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string x = "";
string y = "";
string danwei = "时";
string sql = "";
int r = ((TimeSpan)(et - s)).Days;
//Response.Write(r);
//Response.Write("<br />");
if (r >= 365)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sql = "select datepart(yyyy,regtime) d,count(*) c from t_user where regtime between '{0}' and '{1}' group by datepart(yyyy,regtime) order by d";
danwei = "年";
}
else if (r >= 30)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sql = "select datepart(mm,regtime) d,count(*) c from t_user where regtime between '{0}' and '{1}' group by datepart(mm,regtime) order by d";
danwei = "月";
}
else if (r >= 1)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
sql = "select datepart(dd,regtime) d,count(*) c from t_user where regtime between '{0}' and '{1}' group by datepart(dd,regtime) order by d";
danwei = "日";
}
else
sql = "select datepart(HH,regtime) d,count(*) c from t_user where regtime between '{0}' and '{1}' group by datepart(HH,regtime) order by d";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DateTime s1 = new DateTime(s.Year, s.Month, s.Day);
DateTime e1 = new DateTime(et.Year, et.Month, et.Day, 23, 59, 59);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
sql = string.Format(sql, s1.ToString(), e1.ToString());
//Response.Write(sql);
//return;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DataSet ds = DAL.dbHelper.ExecuteDataset(sql);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
x = ds.Tables[0].Rows[0][0].ToString();
y = ds.Tables[0].Rows[0][1].ToString();
for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
x += '\t' + ds.Tables[0].Rows[i][0].ToString();
y += '\t' + ds.Tables[0].Rows[i][1].ToString();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//创建ChartSpace对象来放置图表
ChartSpace objCSpace = new ChartSpaceClass();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//在ChartSpace对象中添加图表,Add方法返回chart对象
ChChart objChart = objCSpace.Charts.Add(0);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//指定图表的类型。类型由ChartChartTypeEnum枚举值得到
objChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//指定图表是否需要图例
objChart.HasLegend = true;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption = "注册用户/日期分布图";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 日期/单位: " + danwei;
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 数量";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//计算数据
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//*categories 和 values 可以用tab分割的字符串来表示*/
//string strSeriesName = "图例 1";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//添加一个series
objChart.SeriesCollection.Add(0);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//给定series的名字
//objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//给定分类
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
+(int)ChartSpecialDataSourcesEnum.chDataLiteral, x);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//给定值
objChart.SeriesCollection[0].SetData
(ChartDimensionsEnum.chDimValues,
(int)ChartSpecialDataSourcesEnum.chDataLiteral, y);
//输出成GIF文件.
file = "/tmp/" + Guid.NewGuid().ToString() + ".gif";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
objCSpace.ExportPicture(Server.MapPath("~" + file), "GIF", 800, 400);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
else
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
file = "/images/0.gif";
}
//把图片添加到placeholder.
string strImageTag = "<IMG SRC='" + file + "'/>";
ChartHolder.Controls.Add(new LiteralControl(strImageTag));
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)