用微软的office web component 就比较好

解决方案 »

  1.   

    office web component
    那里有下载,或有例子吗?
      

  2.   

    如果GUI+熟的话,自己写,很简单的。
    给你个简单的例子。
    <asp:Image id="Image1" style="Z-INDEX: 101; LEFT: 370px; POSITION: absolute; TOP: 165px" runat="server" ImageUrl="Image.aspx?WD=200&amp;CT=5&amp;PP1=20.0&amp;PC1=green&amp;PT1=25%&amp;PP2=20.0&amp;PC2=blue&amp;PT2=25%&amp;PP3=20.0&amp;PC3=blank&amp;PT3=25%&amp;PP4=20.0&amp;PC4=yellow&amp;PT4=25%&amp;PP5=20.0&amp;PC5=blue&amp;PT5=25%&amp;"></asp:Image>这是个简单的扇形图。参数为:
    wd:width
    ct:count
    pp1:Part 1 percent
    pc1:part1 color
    pt1:part 1 textImports System.Drawing
    Imports System.Drawing.Design
    Imports System.Drawing.ImagingPublic Class DrawParam
        Public Shared MaxPart As Short = 10
        Public Width As Integer
        Public Height As Integer
        Public BackColor As Color
        Public Parts As New ArrayList(MaxPart)
    End ClassPublic Class Part
        Public Percent As Short
        Public ForeColor As Color
        Public Text As String    Public Sub New(ByVal per As String, ByVal col As String, ByVal word As String)
            Percent = Short.Parse(per)
            If Percent > 100 Or Percent < 0 Then
                Throw New ArgumentException("Percent is Range form 1 to 99.")
            End If
            ForeColor = Color.FromName(col)
            Text = word
        End Sub
    End Class
    Public Class ImagePage
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim objBitmap As Bitmap
            Dim objGraphics As Graphics
            Dim param As DrawParam        ' param = ParseParam()
            objBitmap = New Bitmap(200, 200)
            objGraphics = Graphics.FromImage(objBitmap)        'objGraphics.DrawEllipse(New Pen(Color.Red), 0, 0, param.Width, param.Width)
            objGraphics.FillPie(New SolidBrush(Color.Blue), New Rectangle(0, 0, 200, 200), 0.0F, 90.0F)        objBitmap.Save(Response.OutputStream, ImageFormat.Gif)        objBitmap.Dispose()
            objGraphics.Dispose()        Me.Response.ContentType = "image/gif"    End Sub    Private Function ParseParam() As DrawParam
            Dim result As New DrawParam()
            result.Height = Me.Request.QueryString.Item("HT")
            result.Width = Me.Request.QueryString.Item("WH")
            Dim count As Short = Me.Request.QueryString.Item("CT")
            If count > 10 Then
                Throw New ArgumentException("Not Support!")
            End If
            Dim i As Short
            For i = 1 To count
                Dim p As New Part(Me.Request.QueryString.Item("PP" + i.ToString()), _
                                    Me.Request.QueryString.Item("PC" + i.ToString()), _
                                    Me.Request.QueryString.Item("PT" + i.ToString()))
                result.Parts.Add(p)
            Next
            result.BackColor = Color.FromName(Me.Request.QueryString.Item("BC"))        Return result
        End FunctionEnd Class
      

  3.   

    一是使用GDI+自己画,二是使用asp.net图表控件,免费的嘛有freeWebChart,其它的都不能免费使用。
    http://sorke.com/downcontrol.aspx 控件类型:图表控件
      

  4.   

    如果客户端,没有安装,office xp的话,可以使用office web component吗?
    同时,这些控件,使用服务器端脚本开发,还是客户端呢?
      

  5.   

    可以试一下dundas chart 
    www.dundas.com
      

  6.   

    http://www.carlosag.net/Tools/WebChart/Default.aspx
    免费的,我也正在用这个