【问题标题】:Getting the number of rows PER PAGE in Excel using C#使用 C# 在 Excel 中获取每页的行数
【发布时间】: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); } -- 它只给了我一些页面的信息,而不是全部。不知道为什么,但这是一个开始。谢谢。

标签: c# excel


【解决方案1】:

我认为您无法自行计算...这非常复杂,因为每页上的行数取决于许多变量(打印机页面大小、方向、缩放级别等)。 )。

你可以试试这个:Repeat specific rows or columns on every printed page

【讨论】:

  • 谢谢。这是一个想法,但它不适用于这种情况,因为我实际上并不是在重复一组销售,而是在每张纸上添加一个形状。另外,我在插入 PageBreak 之后询问信息。我可以理解 MS 没有提供事先询问的方式,特别是因为你所说的原因。但是在设置 PageBreak 之后,我看不出为什么我不能获得它的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 2012-03-03
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多