1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html; |
4
|
|
|
|
5
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet; |
6
|
|
|
use PhpOffice\PhpSpreadsheet\Style\Font; |
7
|
|
|
use PhpOffice\PhpSpreadsheet\Writer\Html; |
8
|
|
|
use PhpOffice\PhpSpreadsheetTests\Functional; |
9
|
|
|
|
10
|
|
|
class VisibilityTest extends Functional\AbstractFunctional |
11
|
|
|
{ |
12
|
|
|
public function testVisibility1() |
13
|
|
|
{ |
14
|
|
|
$spreadsheet = new Spreadsheet(); |
15
|
|
|
$sheet = $spreadsheet->getActiveSheet(); |
16
|
|
|
$sheet->setCellValue('A1', 1); |
17
|
|
|
$sheet->setCellValue('A2', 2); |
18
|
|
|
$sheet->setCellValue('A3', 3); |
19
|
|
|
$sheet->setCellValue('B1', 4); |
20
|
|
|
$sheet->setCellValue('B2', 5); |
21
|
|
|
$sheet->setCellValue('B3', 6); |
22
|
|
|
$sheet->setCellValue('C1', 7); |
23
|
|
|
$sheet->setCellValue('C2', 8); |
24
|
|
|
$sheet->setCellValue('C3', 9); |
25
|
|
|
$sheet->getColumnDimension('B')->setVisible(false); |
26
|
|
|
$sheet->getRowDimension(2)->setVisible(false); |
27
|
|
|
$writer = new Html($spreadsheet); |
28
|
|
|
$html = $writer->generateHTMLAll(); |
29
|
|
|
$reg = '/^\\s*table[.]sheet0 tr { display:none; visibility:hidden }\\s*$/m'; |
30
|
|
|
$rowsrch = preg_match($reg, $html); |
31
|
|
|
self::assertEquals($rowsrch, 0); |
32
|
|
|
$reg = '/^\\s*table[.]sheet0 tr[.]row1 { display:none; visibility:hidden }\\s*$/m'; |
33
|
|
|
$rowsrch = preg_match($reg, $html); |
34
|
|
|
self::assertEquals($rowsrch, 1); |
35
|
|
|
$reg = '/^\\s*table[.]sheet0 [.]column1 [{] display:none [}]\\s*$/m'; |
36
|
|
|
$colsrch = preg_match($reg, $html); |
37
|
|
|
self::assertEquals($colsrch, 1); |
38
|
|
|
|
39
|
|
|
$this->writeAndReload($spreadsheet, 'Html'); |
40
|
|
|
} |
41
|
|
|
|
42
|
|
|
public function testVisibility2() |
43
|
|
|
{ |
44
|
|
|
$spreadsheet = new Spreadsheet(); |
45
|
|
|
$sheet = $spreadsheet->getActiveSheet(); |
46
|
|
|
$sheet->setCellValue('A1', 1); |
47
|
|
|
$sheet->setCellValue('A2', 2); |
48
|
|
|
$sheet->setCellValue('A3', 3); |
49
|
|
|
$sheet->setCellValue('B1', 4); |
50
|
|
|
$sheet->setCellValue('B2', 5); |
51
|
|
|
$sheet->setCellValue('B3', 6); |
52
|
|
|
$sheet->setCellValue('C1', 7); |
53
|
|
|
$sheet->setCellValue('C2', 8); |
54
|
|
|
$sheet->setCellValue('C3', 9); |
55
|
|
|
$sheet->getDefaultRowDimension()->setVisible(false); |
56
|
|
|
$sheet->getColumnDimension('B')->setVisible(false); |
57
|
|
|
$sheet->getRowDimension(1)->setVisible(true); |
58
|
|
|
$sheet->getRowDimension(3)->setVisible(true); |
59
|
|
|
|
60
|
|
|
$writer = new Html($spreadsheet); |
61
|
|
|
$html = $writer->generateHTMLAll(); |
62
|
|
|
$reg = '/^\\s*table[.]sheet0 tr { height:15pt; display:none; visibility:hidden }\\s*$/m'; |
63
|
|
|
$rowsrch = preg_match($reg, $html); |
64
|
|
|
self::assertEquals($rowsrch, 1); |
65
|
|
|
$reg = '/^\\s*table[.]sheet0 tr[.]row1 { display:none; visibility:hidden }\\s*$/m'; |
66
|
|
|
$rowsrch = preg_match($reg, $html); |
67
|
|
|
self::assertEquals($rowsrch, 0); |
68
|
|
|
$reg = '/^\\s*table[.]sheet0 [.]column1 [{] display:none [}]\\s*$/m'; |
69
|
|
|
$colsrch = preg_match($reg, $html); |
70
|
|
|
self::assertEquals($colsrch, 1); |
71
|
|
|
|
72
|
|
|
$this->writeAndReload($spreadsheet, 'Html'); |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
public function testDefaultRowHeight() |
76
|
|
|
{ |
77
|
|
|
$spreadsheet = new Spreadsheet(); |
78
|
|
|
$sheet = $spreadsheet->getActiveSheet(); |
79
|
|
|
$sheet->setCellValue('A1', 1); |
80
|
|
|
$sheet->getStyle('A1')->getFont()->setStrikethrough(true); |
81
|
|
|
$sheet->setCellValue('A2', 2); |
82
|
|
|
$sheet->setCellValue('A3', 3); |
83
|
|
|
$sheet->getStyle('A3')->getFont()->setStrikethrough(true)->setUnderline(Font::UNDERLINE_SINGLE); |
84
|
|
|
$sheet->setCellValue('B1', 4); |
85
|
|
|
$sheet->setCellValue('B2', 5); |
86
|
|
|
$sheet->setCellValue('B3', 6); |
87
|
|
|
$sheet->setCellValue('C1', 7); |
88
|
|
|
$sheet->setCellValue('C2', 8); |
89
|
|
|
$sheet->setCellValue('C3', 9); |
90
|
|
|
$sheet->getStyle('C3')->getFont()->setUnderline(Font::UNDERLINE_SINGLE); |
91
|
|
|
$sheet->getDefaultRowDimension()->setRowHeight(20); |
92
|
|
|
$sheet->getRowDimension(2)->setRowHeight(25); |
93
|
|
|
|
94
|
|
|
$writer = new Html($spreadsheet); |
95
|
|
|
$html = $writer->generateHTMLAll(); |
96
|
|
|
self::assertEquals(1, substr_count($html, 'height:20pt')); |
97
|
|
|
self::assertEquals(1, substr_count($html, 'height:25pt')); |
98
|
|
|
$rowsrch = preg_match('/^\\s*table[.]sheet0 tr [{] height:20pt [}]\\s*$/m', $html); |
99
|
|
|
self::assertEquals(1, $rowsrch); |
100
|
|
|
$rowsrch = preg_match('/^\\s*table[.]sheet0 tr[.]row1 [{] height:25pt [}]\\s*$/m', $html); |
101
|
|
|
self::assertEquals(1, $rowsrch); |
102
|
|
|
$rowsrch = preg_match('/^\\s*td[.]style1 [{].*text-decoration:line-through;.*[}]\\s*$/m', $html); |
103
|
|
|
self::assertEquals(1, $rowsrch); |
104
|
|
|
$rowsrch = preg_match('/^\\s*td[.]style2 [{].*text-decoration:underline line-through;.*[}]\\s*$/m', $html); |
105
|
|
|
self::assertEquals(1, $rowsrch); |
106
|
|
|
$rowsrch = preg_match('/^\\s*td[.]style3 [{].*text-decoration:underline;.*[}]\\s*$/m', $html); |
107
|
|
|
self::assertEquals(1, $rowsrch); |
108
|
|
|
|
109
|
|
|
$this->writeAndReload($spreadsheet, 'Html'); |
110
|
|
|
} |
111
|
|
|
} |
112
|
|
|
|