如题!
谢谢!!!
谢谢!!!
解决方案 »
- 验证码改字体大小和大小写
- ASP.NET 大写阿拉伯数字转换为数字问题
- 高分请教 存储过程分页问题 在线=======
- |M| 我掉用RAR压缩指定的目录后,如何判断RAR压缩完了没有
- FormsAuthentication请教
- 一般在客户端显示数据列表,用DataGrid还是读数据自己划?
- 救命,怎么在TextBox的onclick事件里调用函数
- 由于datetime.now.tostring()太多,想统一调用一个方法,结果IIS崩溃。。。
- 自己写的代码,第二天看不懂了。。。。
- to numen2004
- 使用过OWC的看过来,如何在曲线图上显示对应的值啊
- 超简单问题:存储过程分页---用哪种方案最好!
objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimYValues,(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); 我象上面这样设置提示:指定的维对当前图表类型而言是无效的。
你的文章我看过了,好象没有如何设置Y轴的呀?
你的晕是什么意思???
是有设置Y轴的数据吗,请给我代码,谢谢!
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 }
}
如果用ADO.NET的DataSet对象,可以生成以TAB分割的字符串:strvalue += (nodes.Item(j).ChildNodes.Item(0).InnerText + '\t');
strCategory += (nodes.Item(j).ChildNodes.Item(1).InnerText + '\t');Microsoft.Office.Interop名称空间指向Office XP PIA,PIA应该事先安装到Web服务器上。编译源代码时要用到Office XP PIA OWC的DLL文件。如果用VS.NET编译,只要加入一个Microsoft.Office.Interop.Owc.dll文件的引用即可(位于解开Office XP PIA文件的目录),如果从命令行编译,必须按照下列方式使用/r:参数: vbc /t:library /out:bin\getchart.dll /r:System.dll /r:System.Web.dll
/r:System.Data.dll
/r:C:\oxppia\Microsoft.Office.Interop.Owc.dll getchart.aspx.vb
(1)设置刻度为500:
chartspace1.Charts(0).Axes(1).majorunit=500(2)设置最大刻度=2000:
chartspace1.Charts(0).Axes(1).scaling.maximum=2000(3)设置最小刻度=100
chartspace1.Charts(0).Axes(1).scaling.minimum=2000此外,这些都可以在ChartSpace的帮助文档中找到。
方法:在VS.net(或者VS)Form--无论是WebForm还是WinForm--中的ChartSpace组件上点右键,选择属性,在“常规”页有一个问号图标,点此图标就启动帮助文档了。查看其中的“编程信息”一章。基本上,所有的OWC开发内容都涉及到了。
我画曲线时候也遇到这个问题,
chart.Axes[1].Scaling下有很多属性。比如你看我的:(动态定义纵坐标的最大和最小值) //纵坐标的最大和最小刻度
if(dsSource.Tables[0].DefaultView.Count>0)
{
chart.Axes[1].Scaling.HasAutoMaximum = false;
chart.Axes[1].Scaling.Maximum = Convert.ToDouble(dsSource.Tables[0].Compute("MAX(necc_price)",string.Empty))+200;
chart.Axes[1].Scaling.HasAutoMinimum = false;
chart.Axes[1].Scaling.Minimum = Convert.ToDouble(dsSource.Tables[0].Compute("MIN(necc_price)",string.Empty))-200;
}