【发布时间】:2013-08-27 14:24:28
【问题描述】:
我以我的方式陈述了上面的问题,因为我已经可以执行以下操作,但它并没有给我所需的解决方案。
我可以:
- 获取每张纸的页数
- 获取任何给定 SHEET 上的最后一个 USED 行(不是每个打印页,所以这没有帮助)
- 我可以查明是否插入了手动或自动分页符 (只是不是在哪里)
这就是我需要的:知道任何给定工作表上每个分页符的行号。有些工作表只有 1 页,有些则有 100 页。
我需要这样做,因为我需要在每页的底部放置一些东西,但是,每张纸的页数不是静态的。一些纸张已设置为横向,其他纸张已设置为纵向。有些工作表设置了“将所有列放在一页上”选项集,这会更改该页面上的行数。
请注意:此问题的解决方案不是“使用页脚”,因为页脚不会接受我需要放在每一页上的数据。
我也不能静态决定每种页面类型可能具有的行数——我让 Excel 在我设置方向时决定。
我已经找了好几天了,我一直无法找到如何确定打印页面上的最后一行是什么。
我正在使用 office 和 VS 2010,并且我正在使用 office 互操作。我没有发布太多代码,因为我现在不知道要使用什么。但是,可以肯定地说,要访问任何给定的工作表,我正在使用以下代码:
Excel.Application excelApp = new Excel.Application();
Excel.Worksheet 工作表;
我敢打赌,有一种非常简单的方法可以做到这一点,我只是没有找到正确的谷歌搜索词组合。但是现在已经有几天了,所以我想我会在这里发布一些东西。感谢您的帮助。
【问题讨论】:
-
如果您正在设置分页符,您可以使用 HPagebreaks 集合吗? msdn.microsoft.com/en-us/library/office/…
-
很遗憾没有。它似乎没有包含我需要的信息。
-
在 VBA
Dim pb As HPageBreak: For Each pb In Sheet1.HPageBreaks: Debug.Print pb.Location.Address: Next pb中测试时,这对我来说没问题 -
有趣。这几乎行得通。这是我使用的代码:workSheet = excelApp.ActiveSheet; foreach (Excel.HPageBreak pb in workSheet.HPageBreaks) { Console.WriteLine("Sheet {0} 页面位置是 {1}", workSheet.Name, pb.Location.Address); } -- 它只给了我一些页面的信息,而不是全部。不知道为什么,但这是一个开始。谢谢。