Foxtable(狐表)用户栏目专家坐堂 → 用模板导出选定的行


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

主题:用模板导出选定的行

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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
用模板导出选定的行  发帖心情 Post By:2018/5/28 12:16:00 [只看该作者]



原代码:  
 Dim Book As New XLS.Book(ProjectPath & "Attachments\建设银行批量付款.xlsx") '打开模板
                Dim fl As String = ProjectPath & "Reports\建设银行批量付款.xlsx"
                Dim Sheet As XLS.Sheet = Book.Sheets(0)
                For Each r As Row In Tables("人工费明细表").GetCheckedRows           '选择选中的行
                    r("导出付款") = True
                    r("导出付款日期") = Date.Now
                    r.Save()
                Next
                Dim Sum As Long = Tables("人工费明细表").GetCheckedRows.Count        '获取导出数量
                msgbox("合计导出人工费付款明细共【 " & sum & " 】条!")
                Book.Build() '生成报表
                Book.Save(fl)         
                Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
                dlg.FileName = tb.current("项目名称") & tb.current("账务月份")
                dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
                If dlg.ShowDialog = DialogResult.Ok Then                    
                    Book.Save(dlg.FileName)
                    Dim Proc As New Process
                    Proc.File = dlg.FileName
                    Proc.Start()
                End If


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图18年05月28日1213_1.png
图片点击可在新窗口打开查看

我想导出选择的行,但现在导出来是全部页面的数据
下面是导出的模板

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图18年05月28日1214_2.png
图片点击可在新窗口打开查看
模板不加上<all>,就打印了一行数据,加上就打印全部数据,不是我要的选中行,请老师帮忙修改哪里



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


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


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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
  发帖心情 Post By:2019/12/7 10:19:00 [只看该作者]

想绘制这种格式的表格,如何实现

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图19年12月07日1017_1.jpg
图片点击可在新窗口打开查看


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


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

设计模板导出后,再每3行设置单元格样式:http://www.foxtable.com/webhelp/topics/1146.htm

类似

Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.BackColor = Color.blue '设置样式的字体颜色
Dim bt As Boolean = True
Dim cnt As Integer = 20
For i As Integer = 0 To cnt Step 3
    Sheet(i, 0).Value = i
    If bt Then '如果是偶数行
        Sheet.Rows(i).Style =Style '设置单元格样式
        If i < cnt - 1
            Sheet.Rows(i+1).Style =Style '设置单元格样式
        End If
        If i < cnt - 2
            Sheet.Rows(i+2).Style =Style '设置单元格样式
        End If
    End If
    bt = not bt
Next
Book.Save("d:\test.xls")
Dim Proc As New Process
Proc.File = "d:\test.xls"
Proc.Start()

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


加好友 发短信
等级:三尾狐 帖子:668 积分:7918 威望:0 精华:0 注册:2015/8/24 9:02:00
  发帖心情 Post By:2019/12/7 11:13:00 [只看该作者]

想在窗口中直接展示,非导出表格

打开主窗口就显示每3行加底纹的样式

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


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

上一个贴的问题吧,这个非常麻烦。

如果不考虑时间关系和排序。仅仅每3行间隔显示,那就非常简单

drawcell事件
Dim c As Integer = e.Row.Index Mod 6
If c >=0 And c<=2 Then
    e.Style = "样式1"
End If

 回到顶部