Foxtable(狐表)用户栏目专家坐堂 → 请教这复合表头,怎么用vba导出到excel表里


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

主题:请教这复合表头,怎么用vba导出到excel表里

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
请教这复合表头,怎么用vba导出到excel表里  发帖心情 Post By:2018/5/30 9:45:00 [只看该作者]


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 10:36:00 [只看该作者]

1、直接saveexcel行不行?

 

2、第一第二行,合并单元格就可以了啊(参考之前的帖子) http://www.foxtable.com/webhelp/scr/2121.htm

 


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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/30 10:42:00 [只看该作者]

saveexcel不行,字段太多,右面怎么赋值不会,

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 10:46:00 [只看该作者]


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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/30 11:22:00 [只看该作者]

老师我没找到啊, 我是table控件数据导到excel不是表导入excel

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 11:29:00 [只看该作者]


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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/30 11:57:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar
看不太懂,请老师帮忙改一下,谢谢,一模一样的导出就可以
[此贴子已经被作者于2018/5/30 12:08:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 12:29:00 [只看该作者]

方法一:

 

Dim dt As Table = Tables("横向报表_Table1")
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.add
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
ws.name = "test"

For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    If dt.Cols(c).caption.contains("出入库") Then
        Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(1, c+7).address)
        App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
        Rg.Merge  '合并指定区域的单元格
        ws.cells(1, c+1).Value = dt.Cols(c).caption.split("_")(0)
        ws.cells(2, c+1).Value = dt.Cols(c).caption.split("_")(1)
    ElseIf dt.Cols(c).caption.contains("合计") Then
        Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(2, c+1).address)
        App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
        Rg.Merge  '合并指定区域的单元格
        ws.cells(1, c+1).Value = dt.Cols(c).caption
    Else
        Dim ary() = dt.Cols(c).caption.split("_")
        If ary.length = 1 Then
            Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(2, c+1).address)
            App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
            Rg.Merge  '合并指定区域的单元格
            ws.cells(1, c+1).Value = dt.Cols(c).caption
            ws.cells(1, c+1).Value = ary(0)
        Else
            ws.cells(2, c+1).Value = ary(1)
        End If
    End If
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        ws.cells(r+3, c+1).Value = dt.rows(r)(c)
    Next
Next

app.visible = True


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 12:34:00 [只看该作者]

方法二:

 

Dim dt As Table = Tables("横向报表_Table1")
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.add
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
ws.name = "test"

For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    If dt.Cols(c).caption.contains("出入库") Then
        Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(1, c+7).address)
        App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
        Rg.Merge  '合并指定区域的单元格
        ws.cells(1, c+1).Value = dt.Cols(c).caption.split("_")(0)
        ws.cells(2, c+1).Value = dt.Cols(c).caption.split("_")(1)
    ElseIf dt.Cols(c).caption.contains("合计") Then
        Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(2, c+1).address)
        App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
        Rg.Merge  '合并指定区域的单元格
        ws.cells(1, c+1).Value = dt.Cols(c).caption
    Else
        Dim ary() = dt.Cols(c).caption.split("_")
        If ary.length = 1 Then
            Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1, c+1).address & ":" & ws.cells(2, c+1).address)
            App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
            Rg.Merge  '合并指定区域的单元格
            ws.cells(1, c+1).Value = dt.Cols(c).caption
            ws.cells(1, c+1).Value = ary(0)
        Else
            ws.cells(2, c+1).Value = ary(1)
        End If
    End If
Next
Dim arr(0 To dt.Rows.count-1,0 To dt.Cols.count-1) As Object  '定义二维数组
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        arr(r, c) = dt.rows(r)(c)
    Next
Next
Dim Rg2 As MSExcel.Range = Ws.Range("A3:" & ws.cells(dt.Rows.count+2, dt.Cols.count).address)  '定义Excel中写入的区域
Rg2.Value = arr
app.visible = True

 


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


加好友 发短信
等级:七尾狐 帖子:1765 积分:16651 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/30 17:53:00 [只看该作者]

感谢老师的回复,非常成功!想把excel表,产品名称整个一个合并列,交替加上背景色,应该怎么加?

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