NPOI Page Breaks

↘锁芯ラ 提交于 2019-12-25 01:55:58

问题


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?


回答1:


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.




回答2:


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);
}


来源:https://stackoverflow.com/questions/16656388/npoi-page-breaks

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!