Is spreadsheet has function to set footer on last page only? If could not, how to create report footer in phpspreadsheet? Is this possible?
$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('footer caption');
Thanks in advance.
Is spreadsheet has function to set footer on last page only? If could not, how to create report footer in phpspreadsheet? Is this possible?
$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('footer caption');
Thanks in advance.
No, I think it is not possible.
class HeaderFooter
which allows you to update excel header and footer located at PhpSpreadsheet/Worksheet/HeaderFooter.php
has a few more methods e.g. getFirstHeader
, getFirstFooter
. But unfortunately there's no method to specify last page or specific page.
Look at this page of the documentation. Go down to : Setting the print header and footer of a worksheet
Edit with code:
$spreadsheet->getActiveSheet()->getHeaderFooter()
->setOddHeader('&C&HPlease treat this document as confidential!');
$spreadsheet->getActiveSheet()->getHeaderFooter()
->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&RPage &P of &N');
Then it offers other code: Tip
The above table of codes may seem overwhelming first time you are trying to figure out how to write some header or footer. Luckily, there is an easier way. Let Microsoft Office Excel do the work for you.For example, create in Microsoft Office Excel an xlsx file where you insert the header and footer as desired using the programs own interface. Save file as test.xlsx. Now, take that file and read off the values using PhpSpreadsheet as follows:
$spreadsheet = \PhpOffice\PhpSpreadsheet IOFactory::load('test.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
var_dump($worksheet->getHeaderFooter()->getOddFooter());
var_dump($worksheet->getHeaderFooter()->getEvenFooter());
var_dump($worksheet->getHeaderFooter()->getOddHeader());
var_dump($worksheet->getHeaderFooter()->getEvenHeader());