以文本方式查看主题 - 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 我想导出选择的行,但现在导出来是全部页面的数据 下面是导出的模板 模板不加上<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 -- 想绘制这种格式的表格,如何实现 |
-- 作者:有点蓝 -- 发布时间: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 |