Foxtable(狐表)用户栏目专家坐堂 → [求助]统计表导出并生成图表


  共有6566人关注过本帖树形打印复制链接

主题:[求助]统计表导出并生成图表

帅哥哟,离线,有人找我吗?
cqlpjks
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
[求助]统计表导出并生成图表  发帖心情 Post By:2016/5/5 16:01:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高三分析统计程序(统计表导出并生成图表测试).rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:总分2015级三诊高文部分优生对照表.xls

请教:1.在条形图上同时显示“总分”和“类别”

         2.导出表时只导出了一个表“总分2015级三诊高文部分优生对照表”,还有一个表“总分2015级三诊高理部分优生对照表”没导出来。

        怎么修改代码,请指教。谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/5 17:20:00 [显示全部帖子]

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/6 11:51:00 [显示全部帖子]

请教:纵坐标的起始值能否从表中的最小值开始,间距值为20?那样要清楚些。谢谢!

[此贴子已经被作者于2016/5/6 11:53:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/6 15:19:00 [显示全部帖子]

没有具体的值,根据“总分”列的最大值和最小值来自动确定。  怎么修改代码:Chart.AxisY.Min = 400 '指定Y轴的最小值     Chart.AxisY.Max = 700 '指定Y轴的最大值。请指教。谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/6 15:31:00 [显示全部帖子]

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/6 17:43:00 [显示全部帖子]

导出后不能自成图表,不知怎么修改代码?请指教!谢谢!

 

Dim bbs() As String = {"高文","高理"}
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim tjnj As String = e.Form.Controls("年级").text '统计年级
    Dim tjlb As String = e.Form.Controls("类别").text '统计类别
    For Each bb As String In bbs
       
        If  "总分" <> "成绩库" And "总分" <> "校名设置" And "总分" <> "目标设置"  Then
           
            '生成图表
            Dim t As Table = Tables("总分" & tjnj & "级" & tjlb & bb & "部分优生对照表")
            Dim Chart As New ChartBuilder '定义一个图表变量
            Dim Series As WinForm.ChartSeries '定义一个图系变量
            Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
            Chart.SeriesList.Clear() '清除图表原来的图系
            Chart.AxisX.ClearValueLabel
            Chart.BarClusterWidth = 80
            Dim xms As List(of String) = t.DataTable.GetValues("姓名")
            For Each lb As String In t.DataTable.GetValues("类别")
                Series = Chart.SeriesList.Add() '增加一个图系
                Chart.AxisY.Min = t.DataTable.Compute("Min(总分)") '指定Y轴的最小值
                Chart.AxisY.Max = t.DataTable.Compute("Max(总分)") '指定Y轴的最大值
                Chart.AxisY.Major = 10 '主刻度间隔值为20
                Series.Text = lb '设置图系的标题
                Dim drs As List(Of DataRow) = t.DataTable.Select("")
                Series.Length = xms.Count
                For r As Integer = 0 To xms.count-1
                    Series.X(r) = r
                    Series.Y(r) = val(t.compute("sum(总分)", "姓名 = '" & xms(r) & "' and 类别 = '" & lb & "'"))
                    Chart.AxisX.SetValueLabel(r, xms(r)) '指定字符表示
                Next
                series.DataLabelCompass = LabelCompassEnum.North
                Series.DataLabelText = "{#YVAL}"
            Next
            Chart.AxisX.AnnoWithLabels = True '启用字符标示
           
            Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
            chart.SeriesList(0).MarkSize= 1 '设置数据点标记的大小
            Chart.LegendVisible = True '显示图列
            Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
            Chart.AxisX.Text = "姓名"
            Chart.AxisY.Text = "总分"
            Chart.PrintWidth = 300
            Chart.PrintHeight = 150
            Tables( "总分" & tjnj & "级" & tjlb & bb & "部分优生对照表").SaveExcel(dlg.FileName, bb & "部分优生对照表") '保存文件
        End If
    Next
End If


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/9 9:01:00 [显示全部帖子]

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/9 10:33:00 [显示全部帖子]

在图例的前面增加“图例:类别”。怎么修改代码?请指教。谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:增加.png
图片点击可在新窗口打开查看

            '生成图表
            Dim t As Table = Tables("总分" & tjnj & "级" & tjlb & bb & "部分优生对照表")
            Dim Chart As New ChartBuilder '定义一个图表变量
            Dim Series As WinForm.ChartSeries '定义一个图系变量
            Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
            Chart.SeriesList.Clear() '清除图表原来的图系
            Chart.AxisX.ClearValueLabel
            Chart.BarClusterWidth = 80
            Dim xms As List(of String) = t.DataTable.GetValues("姓名")
            For Each lb As String In t.DataTable.GetValues("类别")
                Series = Chart.SeriesList.Add() '增加一个图系
                Chart.AxisY.Min = t.DataTable.Compute("Min(总分)") '指定Y轴的最小值
                Chart.AxisY.Max = t.DataTable.Compute("Max(总分)") '指定Y轴的最大值
                Chart.AxisY.Major = 10 '主刻度间隔值为20
                Series.Text = lb '设置图系的标题
                Dim drs As List(Of DataRow) = t.DataTable.Select("")
                Series.Length = xms.Count
                For r As Integer = 0 To xms.count-1
                    Series.X(r) = r
                    Series.Y(r) = val(t.compute("sum(总分)", "姓名 = '" & xms(r) & "' and 类别 = '" & lb & "'"))
                    Chart.AxisX.SetValueLabel(r, xms(r)) '指定字符表示
                Next
                series.DataLabelCompass = LabelCompassEnum.North
                Series.DataLabelText = "{#YVAL}"
            Next
            Chart.AxisX.AnnoWithLabels = True '启用字符标示
            Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
            chart.SeriesList(0).MarkSize= 1 '设置数据点标记的大小
            Chart.LegendVisible = True '显示图列
            Chart.LegendCompass= CompassEnum.South '图列显示在下方(底端)
            Chart.AxisY.Text = "总分"
            Chart.AxisX.Text = "姓名"
            Chart.PrintWidth = 360
            Chart.PrintHeight = 180

[此贴子已经被作者于2016/5/9 10:34:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/9 11:24:00 [显示全部帖子]

不好意思,还是没搞懂。就是想在图例前面增加一个图例的名称(图例:XXX)。


 回到顶部
帅哥哟,离线,有人找我吗?
cqlpjks
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2016/5/9 11:38:00 [显示全部帖子]

谢谢!

 回到顶部
总数 20 1 2 下一页