Foxtable(狐表)用户栏目专家坐堂 → 希望导出EXCEL时只导显示的行(不包括隐藏行)


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

主题:希望导出EXCEL时只导显示的行(不包括隐藏行)

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2011/10/15 18:53:00 [只看该作者]

以下是引用mr725在2011-10-15 18:22:00的发言:

是不能正常导出显示的行。 隐藏的行也导出了。

 

另外,加上 Filter

ex.Filter = "某列 In (xxx,yyy) "        '***老提示错误

 

请老大,版主们 和 狐友们看看

[此贴子已经被作者于2011-10-15 18:31:00编辑过]

测试正常!


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/10/15 19:19:00 [只看该作者]

呵呵,谢谢了。 我的问题,少了单引号···  下面是楼主想要的结果吧:

 

Dim flds As String
    For Each c As Col In Tables("绩效计划表").Cols
        If C.Visible  Then
            flds = flds & "," & c.name
        End If
    Next
    flds= flds.Trim(",")
    Dim s,f As String

    For Each r As Row In Tables("绩效计划表").Rows
        s = s & r("任意一个没有空值的显示列") & "','"
    Next
    s = "'" & s.trim("'").trim(",")

    f = "任意一个没有空值的显示列 " & "In" &  " (" & "" & s & "" & ")"

    Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" '设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        Dim ex As New Exporter
        ex.SourceTableName = "绩效计划表" '指定导出表
        ex.Filter = f  

        ex.FilePath = dlg.FileName '指定目标文件
        ex.Format = "Excel" '导出格式为Excel
        ex.Fields = flds  '指定导出字段  
        ex.Export() '开始导出

    End If


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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/10/16 14:46:00 [只看该作者]

 

Dim tbl 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)
'生成表头
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
            sheet(r + hdr,cnt).value = tbl(r,c)
       
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()

 

 

用这段代码,不包括隐藏行如何导出?


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/10/16 18:50:00 [只看该作者]

这段代码本身就不包括隐藏行的。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/17 7:56:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:148 积分:1406 威望:0 精华:0 注册:2008/9/10 16:41:00
  发帖心情 Post By:2011/10/26 15:30:00 [只看该作者]

以下是引用mr725在2011-10-15 19:19:00的发言:

呵呵,谢谢了。 我的问题,少了单引号···  下面是楼主想要的结果吧:

 

Dim flds As String
    For Each c As Col In Tables("绩效计划表").Cols
        If C.Visible  Then
            flds = flds & "," & c.name
        End If
    Next
    flds= flds.Trim(",")
    Dim s,f As String

    For Each r As Row In Tables("绩效计划表").Rows
        s = s & r("任意一个没有空值的显示列") & "','"
    Next
    s = "'" & s.trim("'").trim(",")

    f = "任意一个没有空值的显示列 " & "In" &  " (" & "" & s & "" & ")"

    Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" '设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        Dim ex As New Exporter
        ex.SourceTableName = "绩效计划表" '指定导出表
        ex.Filter = f  

        ex.FilePath = dlg.FileName '指定目标文件
        ex.Format = "Excel" '导出格式为Excel
        ex.Fields = flds  '指定导出字段  
        ex.Export() '开始导出

    End If

 

上面这个导出的来还是不是显示的顺序。

以下是引用狐狸爸爸在2011-10-17 7:56:00的发言:

直接:

 

http://www.foxtable.com/help/topics/0559.htm

 

用老六的方法,只需用以下公式:

 

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" '设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
CurrentTable.SaveExcel(dlg.FileName,"订单")

 

完全 解决了问题。

还是内置的公式强大,希望老六多开发内置的函数!!!


 回到顶部
总数 16 上一页 1 2