以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 把数据放在指定的单元格 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143075) |
-- 作者:fubblyc -- 发布时间:2019/11/13 8:29:00 -- 把数据放在指定的单元格 老师, 有这样的明细表,设定有空的科目放着,因为有用。 然后做成统计表,科目是一个分组,空的科目因为是一样的,所以,最后只变成一个空行,而不是原来那么多空行。 本来想在空的科目弄上不一样的字符,但是这样不美观,而且量很多。 所以就想在导出的时候,来设定指定位置。 统计表的代码: 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 -- 老师,看,目前导出来就是这样,没有空着空行 老师你看,是等导出来,移动数据比较好,还是说在导出的时候控制放置位置比较好呢?
|
-- 作者:有点蓝 -- 发布时间:2019/11/13 9:04:00 -- 我没有办法判断。2个方法都做出来,看哪个更方便快捷就使用那个。 可以考虑空白的项目使用“预留科目1”、“预留科目2”这种字符替代
|