基于模板
在基础应用篇,我们已经介绍了利用Excel文件作为模板生成Excel报表的方法。
利用Foxtable提供的数据引用方法,可以大大减轻设计Excel报表的工作量。
设计好报表模板后,可能需要通过窗口中的按钮来生成Excel报表,而不是通过菜单,此时可以参考下面的代码:
Dim
Book As
New XLS.Book(ProjectPath
&
"Attachments\出库单.xls")
Dim
fl As
String =
ProjectPath &
"Reports\出库单.xls"
Book.Build()
'生成细节区
Book.Sheets(0).Rows.RemoveAt(0)
'删除第一行,Excel报表的第一行通常是标记行
Book.Save(fl)
'保存工作簿
Dim
Proc As
New Process
'打开工作簿
Proc.File
= fl
Proc.Start()
如果要直接打印,代码为:
Dim
Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")Book的Build方法用于生成细节区,如果模板文件中包含细节区定义,务必调用此方法。
此外,模板只能引用单元格的数据,并进行一些简单的计算统计,所以某些时候并不能满足我们的要求。
我们可以预先设计好模板,简单的部分通过数据引用来实现,然后利用代码动态修改模板,满足一些特殊的需求。
例如在基础应用的示例二中,我们通过模板生成了下图所示的出库单:
现在我们希望在出库单的后面加上制单人信息,制单人等于当前登录用户名, 代码很简单:
Dim
Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls") '打开模板在命令窗口执行上面的代码,会得到下图所示的出库单:
通过动态修改模板文件,我们可以完成更多复杂的功能,例如可以修改细节区定义,使得同一个模板文件能够用于不同的表;也可以在Build方法执行完成后,再根据需要向生成的报表中写入内容;甚至可以完全用代码定义一个模板,然后用Build方法来生成报表。