I am using the NPOI framework to generate a 97/2003 Excel workbook. I need to set a page break every 44 rows and from the example provided in the framework download, the code to do this is:

sheet.SetRowBreak(int row)

I can verify these are setting a collection of row integers but when opening the document and viewing the Page Break preview, there is but a single page that encompasses the entire worksheet.

Sample Code below:

for(int rowCount = 0; rowCount < MaxRows; rowCount += 44)
{
   worksheet.SetRowBreak(rowCount);
}

Ideas?

有帮助吗?

解决方案

This is because of the default values from NPOI. It is set to fit the whole thing to one page. Just add this line to your code and you should have more than one page if the worksheet contains enough rows or columns.

worksheet.FitToPage = false;

But if you want to fit your worksheets width to one page don't change the FitToPage property, but add something like this to your code:

worksheet.PrintSetup.FitHeight = 9999;
// worksheet.PrintSetup.FitWidth = 1; // this is the default value

Then your worksheet always will have the width of one page or less and the height of 9999 pages or less.

其他提示

Are you saving the file after you make the changes in POI?

I tried this, and it worked fine as long as the file was saved afterward:

for(int rowCount = 43; rowCount < sheet.LastRowNum; rowCount += 44)
{
    worksheet.SetRowBreak(rowCount);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top