如何使用epplus将页脚中的页码设置为从指定的数字开始

Posted

技术标签:

【中文标题】如何使用epplus将页脚中的页码设置为从指定的数字开始【英文标题】:How to set page number in footer to start from a specified number using epplus 【发布时间】:2018-07-03 02:56:19 【问题描述】:

我需要为使用 c# epplus 库生成的 excel 文件设置起始页号。我可以按如下方式设置页脚。

ws.HeaderFooter.OddFooter.RightAlignedText =string.Format("Page-0", ExcelHeaderFooter.PageNumber);

我需要将页码设置为从自定义数字输入开始,例如 no 9。我该怎么做? 示例:第一张纸中的页码应为 9,然后第二张纸中的页码应为 10,然后为 11,依此类推...

【问题讨论】:

“起始页编号”是什么意思? 喜欢以 9 开​​头的页面编号,然后在后续页面中继续 10、11、12 等 你想格式化从第n页开始的所有页面的页脚吗? 是的,将起始页数设置为9,然后继续其余页面,第2页为10,第3页为11,等等 【参考方案1】:

ExcelHeaderFooter.PageNumber是一个值为“&P”的字符串,它被excel解释为页码,所以你不能从代码中更新它。

但是,您可以使用以下方法实现您所需要的:

var sheetNumber = 1;
var startingPageNumber = 9;
foreach (var sheet in package.Workbook.Worksheets)
  
    sheet.HeaderFooter.OddFooter.RightAlignedText= string.Format("Page-0", sheetNumber + startingPageNumber);
    sheet.HeaderFooter.EvenFooter.RightAlignedText = string.Format("Page-0", sheetNumber + startingPageNumber);
    sheetNumber++;
  

上面的代码经过测试和验证可以满足您的需求。

【讨论】:

您好,感谢您的回答,但在我的情况下,有一张纸和多页使用分页符。我会检查天气我可以在工作表中的每一页,然后应用你提到的逻辑。【参考方案2】:

在 Excel 的页眉/页脚中,您有以下代码:

&D当前日期

&T当前时间

&F 工作簿名称

&A 工作表名称(来自工作表选项卡)

&P当前页码

&P+x当前页码加x

&P-x当前页码减x

&N 工作簿中的总页数

&&& 符号

与Yahya says in the other answer 一样,ExcelHeaderFooter.PageNumber 具有&P 值,因此,您可以只使用&P+x

int PageStart = 5;
worksheet.HeaderFooter.OddFooter.RightAlignedText = string.Format("Page-0+1.", ExcelHeaderFooter.PageNumber,PageStart-1);

它会起作用的。

请注意,如果没有点,示例不起作用,在这种情况下,excel 只需连接 1 和 5(我真的不知道为什么会这样)

【讨论】:

以上是关于如何使用epplus将页脚中的页码设置为从指定的数字开始的主要内容,如果未能解决你的问题,请参考以下文章

如何将页脚固定在页面底部

word文档怎么重新设置页码

如何在 ag 网格页脚中获取 1 到 5 的页码

如何将页脚固定在页面底部

Netsuite 高级 PDF/HTML 模板:将页脚设置为仅显示在最后一页

VBA代码根据页码更改多个文件中的单词页脚