如何使用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将页脚中的页码设置为从指定的数字开始的主要内容,如果未能解决你的问题,请参考以下文章