Foxtable(狐表)用户栏目专家坐堂 → 多层表头导出为模板


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

主题:多层表头导出为模板

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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
多层表头导出为模板  发帖心情 Post By:2024/4/13 17:24:00 [只看该作者]

在窗口中形成多表头的统计表 ,想按excel模板格式导出,该如何写代码,数据应该是全年的,图例只是部分的

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

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



[此贴子已经被作者于2024/4/13 17:25:13编辑过]

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


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

如果是动态生成的统计表,参考这里的4楼用法:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=191346&skin=0

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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/4/14 22:58:00 [只看该作者]

麻烦老师看下代码错在哪里,一直试,没反应啊,发货数量和未发货数量就是填不上数据
Dim Book As New XLS.Book(ProjectPath & "Attachments\年接单发货统计表.xls")
Dim fl As String = ProjectPath & "Reports\年接单发货统计表.xls"
Dim b As New SQLCrossTableBuilder("接单发货数量统计", "销售接单")
b.C
b.HGroups.AddDef("产品名称") '添加客户列用于水平分组
b.HGroups.AddDef("规格型号") '添加客户列用于水平分组
'b.VGroups.AddDef("接单日期", DateGroupEnum.Year, "{0}年") '添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("接单日期", "{0}月") '添加日期列用于垂直分组,按月分组
b.Totals.AddDef("销售数量", "销售数量")
b.Totals.AddDef("已发货数量", "发货数量")
'b.Totals.AddDef("未发货数量", "未发货数量")
'b.HorizontalTotal = True
Dim dt As DataTable = b.Build(True)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For Each dc As DataCol In dt.DataCols
    If dc.Caption Like "*月" Then
        Dim i As Integer = Val(dc.Caption)
        Sheet(5, 9 + i).Value = "[" & dc.Name & "]"
    End If 
Next 
book.AddDataTable("接单发货数量统计", dt) '添加临时表
Book.Build() 
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()
[此贴子已经被作者于2024/4/14 22:58:25编辑过]

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


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

……
Dim dt As DataTable = b.Build(True)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For Each dc As DataCol In dt.DataCols
        Dim i As Integer = (Val(dc.Caption) - 1) * 3 + 3
    If dc.Caption Like "*销售数量" Then
        Sheet(5, i + 1).Value = "[" & dc.Name & "]"
elseIf dc.Caption Like "*发货数量" Then
        Sheet(5, i + 3).Value = "[" & dc.Name & "]"
elseIf dc.Caption Like "*发货数量" Then
        Sheet(5, i + 2).Value = "[" & dc.Name & "]"
    End If 
Next 
book.AddDataTable("接单发货数量统计", dt) '添加临时表

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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/4/15 9:36:00 [只看该作者]

老师辛苦图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/25 8:39:00 [只看该作者]

大师,按照上面的代码生成的报表,合计位置不对

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




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


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


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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/25 9:42:00 [只看该作者]

按照下边的代码生成的报表,合计部分的数据自动填到了前面的三列,麻烦老师看下代码错在哪里
Dim Book As New XLS.Book(ProjectPath & "Attachments\年接单发货统计表.xls")
Dim fl As String = ProjectPath & "Reports\年接单发货统计表.xls"
Dim b As New SQLCrossTableBuilder("接单发货数量统计", "接单登记")
b.C
b.AddTable("接单登记", "接单单号", "接单明细", "接单单号")
b.HGroups.AddDef("产品名称") '添加客户列用于水平分组
b.HGroups.AddDef("规格型号") '添加客户列用于水平分组
'b.VGroups.AddDef("接单日期", DateGroupEnum.Year, "{0}年") '添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("接单日期", "{0}月") '添加日期列用于垂直分组,按月分组
b.Totals.AddDef("销售数量", "销售数量")
b.Totals.AddExp("已发货数量", "发货数量")
b.Totals.AddExp("未发货数量", "销售数量 - 发货数量", "未发货数量")
b.HorizontalTotal = True 
Dim dt As DataTable = b.Build(True)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For Each dc As DataCol In dt.DataCols
'    If dc.Caption Like "*月" Then
               Dim i As Integer = (Val(dc.Caption) - 1) * 3 + 3
        If dc.Caption Like "*销售数量" Then
            Sheet(5, i + 1).Value = "[" & dc.Name & "]"
        ElseIf dc.Caption Like "*未发货数量" Then
            Sheet(5, i + 3).Value = "[" & dc.Name & "]"
        ElseIf dc.Caption Like "*已发货数量" Then
            Sheet(5, i + 2).Value = "[" & dc.Name & "]"
        End If
'    End If
Next
book.AddDataTable("接单发货数量统计", dt) '添加临时表
Book.Build() 
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()
生成的报表

图片点击可在新窗口打开查看此主题相关图片如下:微信截图.png
图片点击可在新窗口打开查看
报表模板

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






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


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

到命令窗口使用b.Build()生成这个统计表,然后打开表结构看看这个统计表的列名和标题名是怎么样的

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


加好友 发短信
等级:小狐 帖子:356 积分:4360 威望:0 精华:0 注册:2016/4/30 10:41:00
  发帖心情 Post By:2024/5/25 10:18:00 [只看该作者]

下图是生成的临时表,看似没问题

图片点击可在新窗口打开查看此主题相关图片如下:生成的临时表.png
图片点击可在新窗口打开查看


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