1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx; |
6
|
|
|
|
7
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet; |
8
|
|
|
use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooter; |
9
|
|
|
use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing; |
10
|
|
|
use PhpOffice\PhpSpreadsheet\Worksheet\SheetView; |
11
|
|
|
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional; |
12
|
|
|
|
13
|
|
|
class Issue484Test extends AbstractFunctional |
14
|
|
|
{ |
15
|
|
|
public function testHeaderFooter(): void |
16
|
|
|
{ |
17
|
|
|
$spreadsheet = new Spreadsheet(); |
18
|
|
|
$headerImage = new HeaderFooterDrawing(); |
19
|
|
|
$headerImage->setName('Header Logo'); |
20
|
|
|
$headerImage->setPath('samples/images/blue_square.png'); |
21
|
|
|
$headerImage->setHeight(12); |
22
|
|
|
$footerImage = new HeaderFooterDrawing(); |
23
|
|
|
$footerImage->setName('Footer Logo'); |
24
|
|
|
$footerImage->setPath('samples/images/paid.png'); |
25
|
|
|
$footerImage->setHeight(12); |
26
|
|
|
|
27
|
|
|
$worksheet = $spreadsheet->getActiveSheet(); |
28
|
|
|
$worksheet->getSheetView() |
29
|
|
|
->setView(SheetView::SHEETVIEW_PAGE_LAYOUT); |
30
|
|
|
|
31
|
|
|
$worksheet->getHeaderFooter()->setDifferentFirst(true); |
32
|
|
|
$worksheet->getHeaderFooter()->setFirstHeader('&C&G&R&D'); |
33
|
|
|
$worksheet->getHeaderFooter()->addImage($headerImage, HeaderFooter::IMAGE_HEADER_CENTER_FIRST); |
34
|
|
|
|
35
|
|
|
$worksheet->getHeaderFooter()->setDifferentOddEven(true); |
36
|
|
|
$worksheet->getHeaderFooter()->setEvenHeader('&L&G&R&D'); |
37
|
|
|
$worksheet->getHeaderFooter()->addImage($headerImage, HeaderFooter::IMAGE_HEADER_LEFT_EVEN); |
38
|
|
|
$worksheet->getHeaderFooter()->setEvenFooter('&C&G&R&D'); |
39
|
|
|
$worksheet->getHeaderFooter()->addImage($footerImage, HeaderFooter::IMAGE_FOOTER_CENTER_EVEN); |
40
|
|
|
|
41
|
|
|
$worksheet->getHeaderFooter()->setOddHeader('&C&D'); |
42
|
|
|
|
43
|
|
|
for ($currentRow = 1; $currentRow < 130; ++$currentRow) { |
44
|
|
|
$worksheet->setCellValue("A$currentRow", 'Bill'); |
45
|
|
|
$worksheet->setCellValue("B$currentRow", 'Smith'); |
46
|
|
|
} |
47
|
|
|
|
48
|
|
|
// Save spreadsheet to file and read it back |
49
|
|
|
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx'); |
50
|
|
|
$spreadsheet->disconnectWorksheets(); |
51
|
|
|
$sheet = $reloadedSpreadsheet->getActiveSheet(); |
52
|
|
|
$images = $sheet->getHeaderFooter()->getImages(); |
53
|
|
|
self::assertSame(['LHEVEN', 'CHFIRST', 'CFEVEN'], array_keys($images)); |
54
|
|
|
$reloadedSpreadsheet->disconnectWorksheets(); |
55
|
|
|
} |
56
|
|
|
} |
57
|
|
|
|