以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用模板导出选定的行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119593)

--  作者:zoyong
--  发布时间: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>,就打印了一行数据,加上就打印全部数据,不是我要的选中行,请老师帮忙修改哪里



--  作者:有点甜
--  发布时间:2018/5/28 12:17:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=118436&skin=0

 


--  作者:zoyong
--  发布时间:2019/12/7 10:19:00
--  
想绘制这种格式的表格,如何实现

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


--  作者:有点蓝
--  发布时间: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
--  发布时间:2019/12/7 11:13:00
--  
想在窗口中直接展示,非导出表格

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

--  作者:有点蓝
--  发布时间: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