我想用owc组件在网页上生成多分组柱状图。可是网上的资料都是单一的柱状图。多分组柱状图的x轴如下。
----------------------------------X轴
| 分组1成员1 | 分组1成员2 | 分组2成员1 | 分组2成员2 |
| | | | |
| 分组1 | 分组2 |请高手指教。最好用C#代码,100分。
----------------------------------X轴
| 分组1成员1 | 分组1成员2 | 分组2成员1 | 分组2成员2 |
| | | | |
| 分组1 | 分组2 |请高手指教。最好用C#代码,100分。
解决方案 »
- 为什么一个类里的函数可以直接引用包容自己的类
- 各位 来谈一下对.net mvc的理解
- 如何读取某个表中的变量字段的值。
- 用户提交时怎么获取到本页面指定DIV内的HTML代码呢?
- 21世纪重大发现“春哥搜索引擎”
- 大家知道一般下载的网站论坛要查看代码应该怎么查?
- [OleDbException (0x80004005): 未指定的错误],总是出现!急啊
- 入门级问题,请大家帮忙看看,怎么在表格里显示数据库的纪录.
- 为啥网站发布后,FLV视频无法播放,就闪一下。
- 怎样在dropdownlist中加入空格?难道没有高手了吗?(有3个月没有答案了)
- [简单问题]三层架构逻辑层无法调用session问题100分相送[分太多了 :)]
- 密码验证问题
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Office.Interop;
namespace Microsoft.Office.Interop.OWC使用指南
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.PlaceHolder ChartHolder;
private Microsoft.Office.Interop.OWC.ChartChartTypeEnum GetChartType(int typeIndex)
{
int i;
Microsoft.Office.Interop.OWC.ChartChartTypeEnum myTE;
i=typeIndex;
switch(i)
{
case 0:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
return myTE;
case 1:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypePie;
return myTE;
case 2:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeSmoothLine;
return myTE;
case 3:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeArea;
return myTE;
case 4:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeRadarLine;
return myTE;
default:
myTE=Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
return myTE;
}
} private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.OWC.ChartSpace objCSpace = new Microsoft.Office.Interop.OWC.ChartSpaceClass(); //在ChartSpace对象中添加图表,Add方法返回chart对象
Microsoft.Office.Interop.OWC.ChChart objChart = objCSpace.Charts.Add (0); //指定图表的类型。类型由Microsoft.Office.Interop.OWC.ChartChartTypeEnum枚举值得到
//objChart.Type = Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
//上面的是画棒图的方法
//objChart.Type = Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeSmoothLine;
//上面的是画平滑曲线的方法此主题相关图片如下: objChart.Type =Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeRadarLine;
//上面的是画雷达线的方法
//objChart.Type =Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypeArea;
//上面的是画区域线的方法 //objChart.Type =Microsoft.Office.Interop.OWC.ChartChartTypeEnum.chChartTypePie;
//上面的是画饼图的方法,但是要关掉一些参数,比如
/*//objChart.Axes[0].HasTitle = true;
//objChart.Axes[0].Title.Caption = "Y : 数量";
//objChart.Axes[1].HasTitle = true;
//objChart.Axes[1].Title.Caption = "X : 月份"; * */此主题相关图片如下:
此主题相关图片如下:
//指定图表是否需要图例
objChart.HasLegend = true; //给定标题
objChart.HasTitle = true;
objChart.Title.Caption= "上半年分布图"; //给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "Y : 数量";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "X : 月份"; //计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strSeriesName = "图例 1";
string strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t'+"4" + '\t' + "5" + '\t' + "6" + '\t';
string strvalue = "9" + '\t' + "8" + '\t' + "4" + '\t'+"10" + '\t' + "12" + '\t' + "6" + '\t'; //添加一个series
objChart.SeriesCollection.Add(0); //给定series的名字
objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.OWC.ChartDimensionsEnum.chDimSeriesNames,
+ (int)Microsoft.Office.Interop.OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类
objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.OWC.ChartDimensionsEnum.chDimCategories,
+ (int)Microsoft.Office.Interop.OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值
objChart.SeriesCollection[0].SetData
(Microsoft.Office.Interop.OWC.ChartDimensionsEnum.chDimvalues,
(int)Microsoft.Office.Interop.OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strvalue);
//输出成GIF文件.
string strAbsolutePath = (Server.MapPath(".")) + "\\test.gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350); //创建GIF文件的相对路径.
string strRelativePath = "./test.gif"; //把图片添加到placeholder.
string strImageTag = "<IMG SRC='" + strRelativePath + "'/>";
ChartHolder.Controls.Add(new LiteralControl(strImageTag));
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion }
}
___
___| | __
| | | | |__
| | | | | |
——————————————————————
| 分组1 | 分组2|.....我要的效果如下: __ __ __
__| | __ | |__ __| |
| | | | |__ | | | | | |
| | | | | | | | | | | |
——————————————————————---------------
| 分组1成员1 | 分组1成员2| 分组2成员1 | 分组2成员2|
| 分组1 | 分组2 |
每个序列里多加几个值,就能实现你要的功能.
我用Delphi做过.//分组一
chtCharge.Series[0].Add(88,'一');
chtCharge.Series[0].Add(88,'二');
//分组二
chtCharge.Series[1].Add(100,'一');
chtCharge.Series[1].Add(100,'二');
chart.SeriesCollection.Add(0);
chart.SeriesCollection.Add(1);
chart.SeriesCollection.Add(2);
chart.SeriesCollection.Add(3);