找回密码
 立即注册

QQ登录

只需一步,快速开始

20100424

新手上路

1

主题

4

帖子

39

积分

新手上路

积分
39
  • 35

    金币

  • 主题

  • 帖子

最新发帖
20100424
新手上路   /  发表于:2013-10-31 16:18  /   查看:7480  /  回复:7
hi,
    使用的是5.0版本的Spread控件,看了里面的事例,图表链接数据,现在在form上面有个fpspread,sheet里面的数据是后台代码写的DataTable绑定上来的,然后图表是XYPlotArea,数据源是DataTable,可以正确显示,现在想直接使用fpSpread的sheet里面的数据作为数据源,如何做到啊?
Dim plotArea As New FarPoint.Win.Chart.XYPlotArea()
        Dim series1 As New FarPoint.Win.Chart.XYLineSeries() '.BarSeries()
        Dim series2 As New FarPoint.Win.Chart.LineSeries() '.BarSeries()
        Dim random As New Random()
        Dim dt As New DataTable("Test")
        dt.Columns.Add("Series0")
        dt.Columns.Add("Series1")
        Dim dr As DataRow

        For i = 0 To 5
            dr = dt.NewRow()
            dr(0) = random.Next(90, 100)
            dr(1) = random.Next(10, 20)
            dt.Rows.Add(dr)
            FpSpread1.Sheets(0).Cells(i, 0).Text = dt.Rows(i)(0)
            FpSpread1.Sheets(0).Cells(i, 1).Text = dt.Rows(i)(1)
        Next
        '下面图表数据源是dt,现在想直接使用FpSpread1.Sheets(0).Cells(i, 0).Text这一列数据作为数据源,如何做到啊?
        series1.XValues.DataSource = dt
        series1.XValues.DataField = dt.Columns(0).ColumnName
        series1.YValues.DataSource = dt
        series1.YValues.DataField = dt.Columns(1).ColumnName
       ...
       ...

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-10-31 16:41:00
沙发
回复 1楼20100424的帖子

可以使用  AddChart  方法关联 Chart 和 单元格数据。

  1. FpSpread1.Sheets(0).Cells(0, 1).Value = "c1"
  2. FpSpread1.Sheets(0).Cells(0, 2).Value = "c2"
  3. FpSpread1.Sheets(0).Cells(0, 3).Value = "c3"
  4. FpSpread1.Sheets(0).Cells(1, 0).Value = "s1"
  5. FpSpread1.Sheets(0).Cells(2, 0).Value = "s2"
  6. FpSpread1.Sheets(0).Cells(3, 0).Value = "s3"
  7. FpSpread1.Sheets(0).Cells(4, 0).Value = "s4"
  8. FpSpread1.Sheets(0).Cells(5, 0).Value = "s5"
  9. FpSpread1.Sheets(0).Cells(6, 0).Value = "s6"
  10. FpSpread1.Sheets(0).Cells(1, 1).Value = 1
  11. FpSpread1.Sheets(0).Cells(2, 1).Value = 2
  12. FpSpread1.Sheets(0).Cells(3, 1).Value = 3
  13. FpSpread1.Sheets(0).Cells(4, 1).Value = 4
  14. FpSpread1.Sheets(0).Cells(5, 1).Value = 5
  15. FpSpread1.Sheets(0).Cells(6, 1).Value = 6
  16. FpSpread1.Sheets(0).Cells(1, 2).Value = 7
  17. FpSpread1.Sheets(0).Cells(2, 2).Value = 8
  18. FpSpread1.Sheets(0).Cells(3, 2).Value = 9
  19. FpSpread1.Sheets(0).Cells(4, 2).Value = 10
  20. FpSpread1.Sheets(0).Cells(5, 2).Value = 11
  21. FpSpread1.Sheets(0).Cells(6, 2).Value = 12
  22. FpSpread1.Sheets(0).Cells(1, 3).Value = 13
  23. FpSpread1.Sheets(0).Cells(2, 3).Value = 14
  24. FpSpread1.Sheets(0).Cells(3, 3).Value = 15
  25. FpSpread1.Sheets(0).Cells(4, 3).Value = 16
  26. FpSpread1.Sheets(0).Cells(5, 3).Value = 17
  27. FpSpread1.Sheets(0).Cells(6, 3).Value = 18
  28. Dim range As New FarPoint.Win.Spread.Model.CellRange(0, 0, 7, 4)
  29. FpSpread1.Sheets(0).AddChart(range, GetType(FarPoint.Win.Chart.BarSeries), 400, 300, 0, 0, FarPoint.Win.Chart.ChartViewType.View3D, False)

复制代码
回复 使用道具 举报
20100424
新手上路   /  发表于:2013-10-31 16:48:00
板凳
回复 2楼iceman的帖子

可是这个AddChart方法生成的图表只有legend和图、自定义图表位置大小XY轴label、图表题都没地儿写啊
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-31 16:54:00
地板
回复 3楼20100424的帖子

你可以在添加之后,通过 Sheet[0].Charts 拿到这个表单的 Chart 集合,再设置legend和图、自定义图表位置大小XY轴label、图表题等属性。
回复 使用道具 举报
20100424
新手上路   /  发表于:2013-10-31 16:58:00
5#
回复 4楼iceman的帖子

ok,多谢指点
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-31 17:22:00
6#
回复 5楼20100424的帖子

客气了
回复 使用道具 举报
20100424
新手上路   /  发表于:2013-11-1 13:25:00
7#
回复 4楼iceman的帖子

现在这些都可以实现了、另外比如用
cals = New FarPoint.Win.Spread.Model.CellRange(0, 0, 6, 2)
sht.AddChart(cals, GetType(FarPoint.Win.Chart.XYLineSeries), 400, 300, 100, 100, FarPoint.Win.Chart.ChartViewType.View2D, True),这样的,里面是XY图、如何指定X、Y轴的数据啊,比如X轴用第一列的数据,Y轴用第二列的数据
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-1 19:25:00
8#
回复 7楼20100424的帖子

如果是 XYSeries 则无法更改,X 轴坐标值是通过 CategoryNames 指定的。图表系列需要有 CategoryNames 才可以更改。Y 轴值则无法更改。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部