因项目设计不是在菜单中生成excel文件 而是直接代码中生成文件
假定在页首区域加入行号,格式为“第X页”?怎么理解?
然后怎么生成第几页 共几页 这样的内容呢?
当前代码如下:【怎么代码补正呢?】
Dim time As String =Format(Date.now,"yyyyMMddHHmmss")
Dim Book As New XLS.Book(ProjectPath & "Attachments\台账分类按年.xls") '打开模板
Book.Marks.Add("页号", "")
Book.Marks.Add("pg", 0)
Dim fl As String = ProjectPath & "Reports\" & Date.Today.Year & "年" & Date.Today.Month & "台账分类按年" & time &".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
book.AddDataTable("登记台账","主数据源","Sel ect * from {登记台账} where 年度 = '" & Date.Today.Year & "'")
Book.Marks("pg") = Book.Marks("pg") + 1
Book.Marks("页号") = "第" & Book.Marks("pg") & "页" & “共”& ??? & “页”
Book.Marks.Add("页号",???) '添加标记
Book.Build() '生成报表
Book.Save(fl)
以下为帮助中的参考:
BuildPageHeader
生成某个页首前执行。
e参数属性:
Book: 返回工作簿。
请参考指定页首行
示例
假定需要在页首区域加入行号,格式为“第X页”。
实现步骤为:
1、设计模板的时候,在页首区域加入一个标签:<页号>
2、在BeforeBuild事件中,将两个标签插入到Marks集合:
Sele ct
Case e.Book.TempLate
Case
"模板名称"
e.Book.Marks.Add("页号", "")
e.Book.Marks.Add("pg", 0)
End
Sel ect
上面的代码其实加入了两个标签,模板只使用了“页号”标签,而标签“pg”则只用于在代码中记录页号。
3、在BuildPageHeader事件中加入代码:
Sele ct
Case e.Book.TempLate
Case
"模板名称"
e.Book.Marks("pg") = e.Book.Marks("pg") + 1
e.Book.Marks("页号") = "第" & e.Book.Marks("pg") & "页"
End
Se lect
只有在直接通过系统菜单生成Excel报表的时候,才需要在BeforeBuild事件中添加标记,否则在报表生成代码中添加标记显得更为直接,例如:
Dim Book As New
XLS.Book("c:\book5.xls")
Book.Marks.Add("页号",User.Name) '添加标记
Book.Build()
Book.Save("c:\reports\test.xls")
Dim Proc As New
Process
Proc.File = "c:\reports\test.xls"
Proc.Start()
[此贴子已经被作者于2022/10/21 23:12:24编辑过]