Foxtable(狐表)用户栏目专家坐堂 → excel模板中怎么实现在某个单元格显示 第几页共几页?


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

主题:excel模板中怎么实现在某个单元格显示 第几页共几页?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
excel模板中怎么实现在某个单元格显示 第几页共几页?  发帖心情 Post By:2022/10/21 1:25:00 [只看该作者]

excel模板中怎么实现在某个单元格显示 第几页共几页?

 

 


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112389 积分:572213 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/21 8:34:00 [只看该作者]


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)http://www.foxtable.com/webhelp/to...  发帖心情 Post By:2022/10/21 23:11:00 [只看该作者]

因项目设计不是在菜单中生成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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112389 积分:572213 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/22 9:43:00 [只看该作者]

不管是在菜单,还是代码生成,都可以在报表事件处理

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)不管是在菜单,还是代码生成,都可以...  发帖心情 Post By:2022/10/23 14:10:00 [只看该作者]

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)

Book.Marks.Add("pg1", 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("pg1") = Book.Marks("pg1") + 1    这里怎么统计共有多少页呢?
Book.Marks("页号") = "第" & Book.Marks("pg") & "页" & “共”& Book.Marks("pg1")  & “页”

Book.Build() '生成报表
Book.Save(fl)


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112389 积分:572213 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/23 20:53:00 [只看该作者]

没有办法统计,除非每页的行数是固定的,那总页数就等于总行数除以每页行数

 回到顶部