以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  把数据放在指定的单元格  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=143075)

--  作者:fubblyc
--  发布时间:2019/11/13 8:29:00
--  把数据放在指定的单元格

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191113081539.png
图片点击可在新窗口打开查看
老师,
有这样的明细表,设定有空的科目放着,因为有用。
然后做成统计表,科目是一个分组,空的科目因为是一样的,所以,最后只变成一个空行,而不是原来那么多空行。
本来想在空的科目弄上不一样的字符,但是这样不美观,而且量很多。
所以就想在导出的时候,来设定指定位置。
统计表的代码:
        Dim b As New sqlGroupTableBuilder( tb1 , "日报表")
        b.C
        b.Groups.AddDef("行别顺序")
        b.Groups.AddDef("类型")
        b.Groups.AddDef("项目","项目","科目")
        b.Totals.AddExp("上月余额","case when 日期 = \'" & rq & "\' Then 上日余额 End " )
        b.Totals.AddDef("本日增加","本月增加")
        b.Totals.AddDef("本日减少","本月减少")
        b.Filter = filter & " and 公司 = \'" & gongsi & "\'"        
        dt1 = b.Build


导出Excel表格的代码:
        nms = {"类型","项目","上月余额","本月增加","本月减少","本月余额"} \'要导出的列名
        caps = {"类型","科目","上月余额","本月增加","本月减少","本月余额"}  \'对应的列标题
        szs = {60,150,100,100,100,100} \'对应的列宽

        For c As Integer = 0 To nms.length -1
            Sheet(2, c).Value = caps(c) \'指定列标题
            Sheet.Cols(c).Width = szs(c) \'指定列宽
        Next
        For r As Integer = 0 To dt1.datarows.Count - 1 \'填入数据
            For c As Integer = 0 To nms.length -1             
                 Sheet(r +1+2, c).Value = dt1.datarows(r)(nms(c))                           
            Next
        Next
目前现在这个是按顺序来的,
想要让dt1.datarows(r)(nms(1))       (也就是科目的值= "银行账户小计"  的时候,从 104单元格开始放数据)

[此贴子已经被作者于2019/11/13 8:31:08编辑过]

--  作者:fubblyc
--  发布时间:2019/11/13 8:51:00
--  
老师,看,目前导出来就是这样,没有空着空行

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

老师你看,是等导出来,移动数据比较好,还是说在导出的时候控制放置位置比较好呢?


--  作者:有点蓝
--  发布时间:2019/11/13 9:04:00
--  
我没有办法判断。2个方法都做出来,看哪个更方便快捷就使用那个。

可以考虑空白的项目使用“预留科目1”、“预留科目2”这种字符替代