Foxtable(狐表)用户栏目专家坐堂 → excel报表 怎么在生成复杂表头的前提上新增一行作标题 在新增一行 加单位 呢?


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

主题:excel报表 怎么在生成复杂表头的前提上新增一行作标题 在新增一行 加单位 呢?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/15 16:30:00 [显示全部帖子]

红色代码放到for循环外面
    Sheet(0, 0).Value ="党史学习教育开展情况统计表"   
    Sheet.MergeCell(0,0,1,30)
    Sheet(1, 0).Value ="单位"    
    Sheet.MergeCell(1,2,1,3)
For c As Integer = 0 To tbl.Cols.Count - 1
    Sheet.Cols(c).Width =80
    Sheet.Cols(13).Width =400
    Sheet.Cols(16).Width =200

其它单元格的所有填充操作全部从第三行开始

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/15 17:24:00 [显示全部帖子]

当前代码如下:
Dim tbl As Table = Tables("党史统计表")
Dim dt1 As Table = Tables("词典")
Dim hdr As Integer = tbl.HeaderRows '获得表头的层数
Dim cnt As Integer
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
tbl.CreateSheetHeader(Sheet) '生成表头
Sheet.Rows.Insert(0)
Sheet.Rows.Insert(0)
Sheet(0, 0).Value ="党史学习教育开展情况统计表"
Sheet.MergeCell(0,0,1,32)
Sheet(1, 0).Value ="单位"
Sheet.MergeCell(1,2,1,3)

Dim Style As Xls.Style = Book.NewStyle '新建一个线框样式
Style.BorderTop = XLS.LineStyleEnum.Thin
Style.BorderBottom = XLS.LineStyleEnum.Thin
Style.BorderLeft = XLS.LineStyleEnum.Thin
Style.BorderRight = XLS.LineStyleEnum.Thin
Style.BorderColorTop = Color.Black
Style.BorderColorBottom = Color.Black
Style.BorderColorLeft = Color.Black
Style.BorderColorRight = Color.Black
Style.AlignHorz=XLS.AlignHorzEnum.Center
Style.AlignVert=XLS.AlignVertEnum.Center
Style.FontBold = True '字体加粗
Style.Font = New Font("仿宋", 12 , FontStyle.Bold)
Style.WordWrap=True
Dim St21 As Xls.Style = Book.NewStyle '新建一个时间格式化样式
st21.Font = New Font("仿宋", 20 , FontStyle.Bold)
St21.AlignHorz=XLS.AlignHorzEnum.Center
St21.AlignVert=XLS.AlignVertEnum.Center

Dim St2 As Xls.Style = Book.NewStyle '新建一个时间格式化样式
St2.Format = "yyyy-MM-dd"
St2.BorderTop = XLS.LineStyleEnum.Thin
St2.BorderBottom = XLS.LineStyleEnum.Thin
St2.BorderLeft = XLS.LineStyleEnum.Thin
St2.BorderRight = XLS.LineStyleEnum.Thin
St2.BorderColorTop = Color.Black
St2.BorderColorBottom = Color.Black
St2.BorderColorLeft = Color.Black
St2.BorderColorRight = Color.Black
St2.AlignHorz=XLS.AlignHorzEnum.Center
St2.AlignVert=XLS.AlignVertEnum.Center
St2.FontBold = True '字体加粗
St2.Font = New Font("仿宋", 12, FontStyle.Bold)
st2.WordWrap=True

Sheet
For c As Integer = 0 To tbl.Cols.Count - 1
    Sheet.Cols(c).Width =80
Next
Sheet.Cols(13).Width =400
Sheet.Cols(16).Width =200
Sheet.Cols(17).Width =400
Sheet.Cols(19).Width =200
Sheet.Cols(20).Width =400
Sheet.Cols(22).Width =400
Sheet.Cols(26).Width =400
Sheet.Cols(30).Width =200
Sheet.Rows(0).Height = 40
Sheet.Rows(1).Height = 40
Sheet.Rows(2).Height = 40
Sheet.Rows(3).Height = 40
For r1 As Integer = 0 To dt1.Rows.Count - 1 '填入数据
    For c1 As Integer = 0 To tbl.Cols.Count-1
        Sheet(r1+2, 13).Value = dt1.rows(r1)(0)
        Sheet(r1+2, 12).Value = r1+1
    Next
Next
……

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 20:45:00 [显示全部帖子]

给具体的单元格设置样式,不要整列设置,整列是会所有行都有的,就是execl文件所有行的这个列都会有样式

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 21:59:00 [显示全部帖子]

1、这个要使用vba控制http://www.foxtable.com/webhelp/topics/2121.htm
2、试试
    Sheet.Rows(0).Height = 80
    Sheet.Rows(1).Height = 40
    Sheet.Rows(2).Height = 40
    Sheet.Rows(3).Height = 80
For r2 As Integer = 2 To Sheet.rows.count-1
    Sheet.Rows(r2).Height = 50
    For c1 As Integer = 0 To tbl.Cols.Count-1
        If tbl.Cols(c1).IsDate
            Sheet(r2,c1).Style = St2
        Else
            Sheet(r2,c1).Style = Style
        End If
    Next
Next
3、在每个分页符后,添加底部内容
[此贴子已经被作者于2021/5/16 21:59:21编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 23:11:00 [显示全部帖子]

1、没有办法,只能另外处理
2、认真看看帮助里,有怎么引用多行的用法,给了帮助的,建议还是把帮助重头看一遍

引用整行或整行区域。

Rg = Ws.Rows("5")  '引用第5行
Rg = Ws.Rows("5:6")  '引用第5-6行

3、在每一个分页后面都另外添加3行说明行(25、26、27行的内容

4、表格有多少行,和添加了多少行,都有索引可以计算的

比如dt1.Rows.Count等于15,那么就是多添加20-dt1.Rows.Count=5行空行

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 23:12:00 [显示全部帖子]

个人建议还是花时间看看专业报表。比上面使用的这些代码也复杂不到哪去

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 8:56:00 [显示全部帖子]

请上传实例说明

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 11:49:00 [显示全部帖子]

麻烦新建一个项目,做个内部表的项目发上来,把打印代码放到按钮里或者函数里。

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 20:33:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:服务202105170253.zip


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107833 积分:548516 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 22:25:00 [显示全部帖子]

升级到最新版

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