各位大侠好!如何在vb窗体中显示EXCEL中绘制曲线图。

解决方案 »

  1.   

    我也不是很懂,帮你到网上查了下, 你试试;
    在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows API函数来完成,但是如果你对实时曲线的要求不是很高,只要能表示出当前的一般情况的话,我们可以直接应用VB提供给我们的空间来完成.Picture1 .ScaleMode = 1  ‘以VB的基本单位作为建立坐标轴以及绘制图形的单位;
    Picture1.Refresh
    Picture1.CurrentX = Picture1.ScaleLeft +100
    Picture1.CurrentY = Picture1.ScaleTop 
    Picture1.Print  Picture1.ScaleHeight - 100
    Picture1.Line(Picture1.ScaleLeft+100,Picture1.ScaleTop+100)-(Picture1.ScaleLeft+100, Picture1.ScaleHeight - 100)
    Picture1.CurrentX = Picture1.ScaleLeft +100
    Picture1.CurrentY = Picture1.ScaleHeight 
    Picture1.Print  “(0,0)”
    Picture1.Line (Picture1.ScaleLeft + 100, Picture1.ScaleHeight - 100)-(Picture1.ScaleWidth - 100, Picture1.ScaleHeight - 100)
    Picture1.CurrentX = Picture1.ScaleWidth
    Picture1.CurrentY = Picture1.ScaleHeight 
    Picture1.Print  Picture1.ScaleWidth-100
    Picture1.AutoRedraw = True        ‘必要时,用存储在内存中的图象进行重绘
           3.绘制曲线并保存,我们这里以正弦曲线作为绘制曲线的数据来源,具体应用是可以采用由串口或其他仪器采集得到的数据.首先我们绘制一条中线,然后在Timer控件的Time事件中绘制曲线:
    Picture1.Line (Picture1.ScaleLeft, CInt(Picture1.ScaleHeight / 2))-(Picture1.ScaleWidth, CInt(Picture1.ScaleHeight / 2)) ‘绘制中线
    Private Sub Timer1_Timer()
    Dim y1 As Integer
    y1 = CInt(Sin((x - Picture1.Left) / 20 / 180 * pi) * Picture1.ScaleHeight / 2)
    y1 = CInt((Picture1.ScaleHeight + 1000) / 2) - y1
    Picture1.Line (x, y)-(x + 20, y1)
    x = x + 20
    y = y1
    If x >= Picture1.ScaleWidth Then
        SavePicture Picture1.Image, “c:\sin.bmp“
      

  2.   

    用teechart吧,丰富多彩的功能
      

  3.   

    谢谢大家的热情,我问的是加入通过程序在EXCEL表格中自动录入数据,然后通过EXCEL功能在表格中绘制曲线,我提前把EXCEL模板设置好,数据只要自动录入,曲线就在EXCEL中绘制出来了,这些都后台运行;我要求助的是如何把EXCEL中已经绘制好曲线显示在我自己的VB窗体上;就像打开EXCEL开到其中的曲线一样。
      

  4.   

    通过OLE控件,OLE能显示EXCEL文档.