Foxtable(狐表)用户栏目专家坐堂 → 求助,如何导出表结构的代码


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

主题:求助,如何导出表结构的代码

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/14 1:03:00 [显示全部帖子]

以下是引用lihe60在2012-1-13 10:21:00的发言:

谢谢,表格达到目的了。

如果给这个表加个标题,如“订单汇总表”,代码如何写?

能达到目的吗???????

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/14 22:43:00 [显示全部帖子]

C版说的不错,用blackzhu的代码,看看这张图: 

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名0.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/14 23:40:00 [显示全部帖子]

我搞出来了,就是挺复杂的,看看能否整理一下代码。


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

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/16 14:08:00 [显示全部帖子]

不用vba,纯狐表帮助中的代码: 导出Exce(多表头 三层)


Dim n,cn As Integer
Dim b1 As String
Dim Book As New XLS.Book(ProjectPath & "test.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle()

Style.AlignHorz = XLS.AlignHorzEnum.Center
Style.AlignVert = XLS.AlignVertEnum.Center

For Each dc As Col In Tables("表A").Cols
    If cn = 0
        cn = dc.Name.split("_").length
    ElseIf cn < dc.Name.split("_").length
        cn = dc.Name.split("_").length    ' 最大层次
    End If

Next

For Each dc As Col In Tables("表A").Cols
    For ii As Integer = 0 To dc.Name.split("_").length-1
        b1 = b1 & dc.Name.split("_")(ii) & "_"
        Sheet(ii+1,n+1).Value = dc.name.split("_")(ii)
        Sheet(ii+1,n+1).Style = Style                       '  字体居中
    Next


If dc.Name.split("_").length > 1

    If dc.Name.split("_").length = 1
        Sheet.MergeCell(1,n+1,cn,1)  ' (0,n,cn,n)
    ElseIf  dc.Name.split("_").length = 2
        Sheet.MergeCell(2,n+1,cn-1,1)
    End If
    If b1.split("_")(0) = dc.name.split("_")(0)
        Sheet.MergeCell(1,n,1,2)
    End If

End If

    n = n + 1
    b1 = ""
Next
sheet(0,1).Value = "你喜欢的表名"
Sheet.MergeCell(0,1,1,Tables("表A").Cols.Count)  

sheet(0,1).Style = Style
Book.Save(ProjectPath & "test.xls")

Dim Proc As New Process
Proc.File = ProjectPath & "test.xls"
Proc.Start()

[此贴子已经被作者于2012-1-16 14:40:17编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/16 18:39:00 [显示全部帖子]

以下是引用狐狸爸爸在2012-1-16 15:49:00的发言:
还贴,加精华。

哈哈,这个精华要撤销的。 等我改进一下····


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/16 19:22:00 [显示全部帖子]

呵呵,这个比33楼的要强一些,应适合任意当前表的导出,不论有没有多层表头,但是只限制三层以内的表头,三层以上会有点问题的(一般三层够用吧)。另外数据行的导出省略了。纯狐表帮助中的代码

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导出多层表头的excel.rar

[此贴子已经被作者于2012-1-16 19:22:33编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/16 21:03:00 [显示全部帖子]

呵呵,这个“态”变得好···  妙哇! 超强···


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/1/17 [显示全部帖子]

但是不管那一层,相邻的名称一样时都会合并掉:如 a_b,b_b两列会把第二层的b合并掉。这个要老大来看看了!

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名25.jpg
图片点击可在新窗口打开查看


 回到顶部