Foxtable(狐表)用户栏目专家坐堂 → 如何给导出的excel表设设置字段


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

主题:如何给导出的excel表设设置字段

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


加好友 发短信
等级:狐神 帖子:6809 积分:43063 威望:0 精华:0 注册:2009/3/2 14:07:00
如何给导出的excel表设设置字段  发帖心情 Post By:2018/11/29 9:24:00 [只看该作者]

Dim tbl As Table = Args(0)
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) '生成表头
For c As Integer = 0 To tbl.Cols.Count - 1
    If tbl.Cols(c).Visible Then
        For r As Integer = 0 To tbl.Rows.Count - 1
            If tbl(r,c)<>Nothing
                sheet(r + hdr,cnt).value = tbl(r,c)
            End If
        Next
        cnt = cnt + 1
    End If
Next

Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()
[此贴子已经被作者于2018/11/29 9:32:00编辑过]

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


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

1、你可以先对table的列进行隐藏或者显示,再导出。

 

2、或者参考 http://www.foxtable.com/webhelp/scr/1148.htm

 


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


加好友 发短信
等级:狐神 帖子:6809 积分:43063 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2018/11/29 18:40:00 [只看该作者]

使用一楼的代码,让导出的表头居中,如何写代码?
[此贴子已经被作者于2018/11/29 18:44:00编辑过]

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


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

以下是引用lihe60在2018/11/29 18:40:00的发言:
使用一楼的代码,让导出的表头居中,如何写代码?
[此贴子已经被作者于2018/11/29 18:44:00编辑过]

 

本来就是默认居中的。


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


加好友 发短信
等级:狐神 帖子:6809 积分:43063 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2018/11/29 20:18:00 [只看该作者]

Dim tbl As Table = Args(0)
Dim hdr As Integer = tbl.HeaderRows '获得表头的层数
Dim cnt As Integer
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)

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.Red
Style.BorderColorBottom = Color.Red
Style.BorderColorLeft = Color.Red
Style.BorderColorRight = Color.Red

Dim St2 As XLS.Style = Book.NewStyle() '定义新样式
St2.BorderTop = XLS.LineStyleEnum.Thin
St2.BorderBottom = XLS.LineStyleEnum.Thin
St2.BorderLeft = XLS.LineStyleEnum.Thin
St2.BorderRight = XLS.LineStyleEnum.Thin
St2.BorderColorTop = Color.Red
St2.BorderColorBottom = Color.Red
St2.BorderColorLeft = Color.Red
St2.BorderColorRight = Color.Red
St2.Format = "yyyy-MM-dd"

tbl.CreateSheetHeader(Sheet) '生成表头
Dim c As Integer =0
For Each c1 As Col In tbl.cols
    If c1.Visible Then
        For r As Integer = 0 To tbl.Rows.Count - 1
            sheet(r + hdr,cnt).value = tbl(r,c)
        Next
        cnt = cnt + 1
    End If
    c=c+1
Next
c=0
For Each c1 As Col In tbl.cols
    If c1.visible=True
        Sheet(0, c).style = style
        c=c+1
    End If
Next

For r As Integer = hdr-1 To tbl.Rows.Count+hdr - 1 '填入数据
    c =0
    For Each c1 As Col In tbl.cols
        If c1.visible=True
            Sheet(r, c).style = style
            If tbl.cols(c).Isdate
                If r<>tbl.Rows.count+hdr-1
                    Sheet(r,c).Style = st2
                Else
                    Sheet(r,c).Value = Nothing
                End If
            End If
            c=c+1
        End If
    Next
Next

Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()

“合同”两个字没有居中


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/11/29 20:18:26编辑过]

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


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

Dim tbl As Table = CurrentTable
Dim hdr As Integer = tbl.HeaderRows '获得表头的层数
Dim cnt As Integer
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim Sty As xls.style = book.NewStyle
sty.AlignHorz = XLS.AlignHorzEnum.Center
Sty.BorderTop = XLS.LineStyleEnum.Thin
Sty.BorderBottom = XLS.LineStyleEnum.Thin
Sty.BorderLeft = XLS.LineStyleEnum.Thin
Sty.BorderRight = XLS.LineStyleEnum.Thin
Sty.BorderColorTop = Color.Red
Sty.BorderColorBottom = Color.Red
Sty.BorderColorLeft = Color.Red
Sty.BorderColorRight = Color.Red


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.Red
Style.BorderColorBottom = Color.Red
Style.BorderColorLeft = Color.Red
Style.BorderColorRight = Color.Red

tbl.CreateSheetHeader(Sheet) '生成表头
Dim c = 0
For Each c1 As Col In tbl.cols
    If c1.visible=True
        For i As Integer = 0 To hdr
            sheet(i, c).style = sty
        Next
        c=c+1
    End If
Next


For r As Integer = hdr To tbl.Rows.Count+hdr - 1 '填入数据
    c =0
    For Each c1 As Col In tbl.cols
        If c1.visible=True
            Sheet(r, c).style = style
            Sheet(r, c).value = tbl(r-hdr,c1.Index)
            c=c+1
        End If
    Next
Next


Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()


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


加好友 发短信
等级:狐神 帖子:6809 积分:43063 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2018/11/30 20:29:00 [只看该作者]

如何设置字体及大小?

[此贴子已经被作者于2018/11/30 20:42:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/30 20:47:00 [只看该作者]


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


加好友 发短信
等级:狐神 帖子:6809 积分:43063 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2018/12/1 10:39:00 [只看该作者]

sty.F

这样提示错误

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


加好友 发短信
等级:超级版主 帖子:106204 积分:540143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/1 11:11:00 [只看该作者]

http://www.foxtable.com/webhelp/scr/0494.htm

style.font = New Font("宋体",12,FontStyle.Bold or FontStyle.Underline)

 回到顶部