是否可以为我的Excel文档设置页码?我已经在一定数量的行之后设置了分页符,所以我想知道是否可以执行某些操作?
此外,是否有可能获得分页符的总数?
for (int j = 0; j < Input.Count; j++)
{
IRow row = sheet.CreateRow(j + 2);
if (internalCounter == limit)
{
sheet.SetRowBreak(j+1);
internalCounter = 0;
}
ICell cellZero = row.CreateCell(0);
ICell cellOne = row.CreateCell(1);
ICell cellTwo = row.CreateCell(2);
ICell cellThree = row.CreateCell(3);
ICell cellFour = row.CreateCell(4);
ICell cellFive = row.CreateCell(5);
cellZero.CellStyle = contentStyle;
cellOne.CellStyle = contentStyle;
cellTwo.CellStyle = contentStyle;
cellThree.CellStyle = contentStyle;
cellFour.CellStyle = contentStyle;
cellFive.CellStyle = contentStyle;
cellZero.SetCellValue(cH.CreateRichTextString((internalCounter+1).ToString()));
cellOne.SetCellValue(cH.CreateRichTextString(Input[j].BranchCode.ToString()));
cellTwo.SetCellValue(cH.CreateRichTextString(Input[j].PolicyNo.ToString()));
cellThree.SetCellValue(cH.CreateRichTextString(Input[j].Employer.ToString()));
cellFour.SetCellValue(cH.CreateRichTextString(Input[j].Name.ToString()));
cellFive.SetCellValue(cH.CreateRichTextString(Input[j].SerialNo.ToString()));
internalCounter++;
}
答案 0 :(得分:0)
1:您可以创建带有页码的页面标题:
var header = sheet.Header;
header.Center = $"Page {HeaderFooter.Page}";
2:您可以在此标题中包括总页数:
var header = sheet.Header;
header.Center = $"Page {HeaderFooter.Page} of {HeaderFooter.NumPages}";
3:如果要在代码中使用分页符总数,请添加以下内容:
var totalPageBreaks = 0;
for (int j = 0; j < < Input.Count; j++)
{
IRow row = sheet.CreateRow(j + 2);
if (internalCounter == limit)
{
totalPageBreaks++;
sheet.SetRowBreak(j + 1);
internalCounter = 0;
}
4:NPOI默认设置为适合所有一页。添加它以获得分页符:
sheet.FitToPage = false;
5:这是一个演示Windows控制台的应用程序,显示了上述所有要点:
using System;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
class Program
{
static void Main(string[] args)
{
var wb = new HSSFWorkbook();
var sheet = wb.CreateSheet("Sheet1");
sheet.FitToPage = false;
const int limit = 30;
var internalCounter = 0;
var totalPageBreaks = 0;
for (int j = 0; j < 100; j++)
{
IRow row = sheet.CreateRow(j + 2);
if (internalCounter == limit)
{
totalPageBreaks++;
sheet.SetRowBreak(j + 1);
internalCounter = 0;
}
ICell cellZero = row.CreateCell(0);
ICell cellOne = row.CreateCell(1);
cellZero.SetCellValue($"Counter {internalCounter + 1}");
cellOne.SetCellValue($"BranchCode {j + 1}");
internalCounter++;
}
var header = sheet.Header;
header.Center = $"Page {HeaderFooter.Page} of {HeaderFooter.NumPages}";
using (var file = new FileStream(@"C:\temp\Test1.xls", FileMode.Create))
{
wb.Write(file);
}
Console.WriteLine("Worksheet created. Press any key");
Console.ReadLine();
}
}
结果: