Foxtable(狐表)用户栏目专家坐堂 → [求助]导出指定列后汇总消失


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

主题:[求助]导出指定列后汇总消失

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


加好友 发短信
等级:婴狐 帖子:6 积分:134 威望:0 精华:0 注册:2020/9/8 10:49:00
[求助]导出指定列后汇总消失  发帖心情 Post By:2020/9/24 13:58:00 [只看该作者]

《分割报表》按钮使用以下代码进行了分组汇总
********************************************************************
Dim t As Table = Tables("餐费数据明细")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
Tables("餐费数据明细").Sort = "所属年份,所属月份,部门,项目编号"
'定义项目分组
g = New Subtotalgroup 
g.GroupOn = "项目编号"
g.TotalOn = "金额"
t.SubtotalGroups.Add(g)
'定义部门分组
g = New Subtotalgroup 
g.GroupOn = "部门"
g.TotalOn = "金额"

t.SubtotalGroups.Add(g)


'定义总计分组
g = New Subtotalgroup
g.GroupOn = "*" 
g.TotalOn = "金额"

t.SubtotalGroups.Add(g)
t.Subtotal() '生成汇总模式
图片点击可在新窗口打开查看

***********************************************************************
《导出报表》按钮使用下面的代码就可以把生成的汇总带格式的导出来
***********************************************************************
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If
***********************************************************************
但是只想导出里面部分列,不想全部导出,就在《导出报表》按钮里面尝试了以下方法
***********************************************************************
Dim dt As Table = Tables("餐费数据明细")
Dim nms() As String = {"所属年份","所属月份","姓名","部门","项目编号","金额"} '要导出的列名 
Dim caps() As String = {"所属年份","所属月份","姓名","部门","项目编号","金额"}  '对应的列标题 
Dim szs() As Integer = {80,80,80,110,110,80} '对应的列宽 
Dim Book As New XLS.Book '定义一个Excel工作簿 
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表 
Dim st As XLS.Style = Book.NewStyle '日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length -1 
    Sheet(0, c).Value = caps(c) '指定列标题
    Sheet.Cols(c).Width = szs(c) '指定列宽
    If dt.Cols(nms(c)).IsDate Then '如果是日期列
        Sheet.Cols(c).Style = st '设置显示格式
    End If
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next
Next
***********************************************************************
图片点击可在新窗口打开查看导出后分组汇总的格式消失了图片点击可在新窗口打开查看
***********************************************************************
提问:如何在保持分组汇总的前提下,导出指定列(导出列名:所属月份,所属年份,部门,项目编号,姓名,金额)

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/24 15:08:00 [只看该作者]

《导出报表》按钮使用下面的代码就可以把生成的汇总带格式的导出来  --- 把这个代码完整贴出来

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


加好友 发短信
等级:婴狐 帖子:6 积分:134 威望:0 精华:0 注册:2020/9/8 10:49:00
  发帖心情 Post By:2020/9/24 15:26:00 [只看该作者]

代码是完整的。在导出前已经通过排序、筛选、汇总完成了,就是第一大段代码

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/24 15:41:00 [只看该作者]

请上传实例说明

 回到顶部