PHPExcel – 在文档创build过程中获取当前页面

客户在制药行业工作。

我们打印客户购买物品的账单。

文件的一般结构如下:

Header List of items Footer 

当所有项目列表适合N个页面时,有时会发生这种情况。

在这种情况下,页脚移动到最后一页。

当地法律禁止这样的文件,即主人不能孤立。 它需要包含至less一个卖出的头寸。

关于执行的想法:

如果我可以在调用操作(如setCellValue或fromArray)期间获取当前页面,将很容易实现它。

在这种情况下,我可以检查我还有多less行,如果我在新的页面上。 如果我在新的页面上,并有零个项目,那么我会在最后一个位置之前添加空行。

因为Excel的工作方式,我觉得不可能进入phpexcel。

至于现在我只有一个肮脏的解决scheme:根据用户请求创build文档 – >存储在服务器上的临时文件夹的某个地方 – >阅读它并检查文档是否有最后一页没有项目,如果是这种情况下,我会添加空位并重新创build文档(某种深度有限的recursion)。

但是这个解决scheme太混乱了。 有没有更好的方法来处理这个问题?

实际上,如果希望打印的格式是固定的(如字体types和大小,页眉格式,纸张大小等),那么您可以检查有多less行:

 $objPHPExcel->setActiveSheetIndex(0)->getHighestRow(); //if 0 is the sheet you are working on 

您可以检查需要多less行将footer推送到新页面。 基本上有一个公式给你:

 $footerWillBeOnSeparateSheet = $allRowCount % $maximumRowPerPage === $nomberOfRowsWhenFooterGetsOnTheNextPage; 

如果$footerWillBeOnSeparateSheet为true,那么你需要添加你提到的空行。

我会使用一种不同的方法,而不是添加一个空行。 如果$footerWillBeOnSeparateSheet值为true,则尝试将最后两个项目和页脚分隔到不同的页面中。

编辑:使用getRowHeight()也是一个选项,虽然这将是很难保持不同的模板的差异。