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


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

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

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


加好友 发短信
等级:幼狐 帖子:148 积分:1406 威望:0 精华:0 注册:2008/9/10 16:41:00
希望导出EXCEL时只导显示的行(不包括隐藏行)  发帖心情 Post By:2011/10/15 9:26:00 [显示全部帖子]

以下公式为将绩效计划表中的可见列导出EXCEL,但每次导出都是所有行,希望只导出当前显示的行(不包括隐藏行),请问应该加什么公式?谢谢

 

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 dlg As New SaveFileDialog '定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" '设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        Dim ex As New Exporter
        ex.SourceTableName = "绩效计划表" '指定导出表
        ex.FilePath = dlg.FileName '指定目标文件
        ex.Format = "Excel" '导出格式为Excel
        ex.Fields = flds  '指定导出字段
        ex.Export() '开始导出


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


加好友 发短信
等级:幼狐 帖子:148 积分:1406 威望:0 精华:0 注册:2008/9/10 16:41:00
  发帖心情 Post By:2011/10/15 14:04:00 [显示全部帖子]

以下是引用czy在2011-10-15 13:13:00的发言:

这样不行吗?

…………

ex.Filter = Tables("绩效计划表").Filter

ex.Export() '开始导出

 

好使!!!!!!


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


加好友 发短信
等级:幼狐 帖子:148 积分:1406 威望:0 精华:0 注册:2008/9/10 16:41:00
  发帖心情 Post By:2011/10/15 14:10:00 [显示全部帖子]

还有一个问题,导出后的数据顺序和显示的顺序是不一致的,这个如何处理?
[此贴子已经被作者于2011-10-15 14:10:12编辑过]

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


加好友 发短信
等级:幼狐 帖子:148 积分:1406 威望:0 精华:0 注册:2008/9/10 16:41:00
  发帖心情 Post By:2011/10/15 14:46:00 [显示全部帖子]

ex.Fields = flds  '指定导出字段

    我指定导出的字段是当前显示的所有字段,没有指定排序的列呀。想当前显示的是什么顺序就导出什么顺序,但上述公式导出后和显示的顺序不一致。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
bad
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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,"订单")

 

完全 解决了问题。

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


 回到顶部