93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			93 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace PhpOffice\PhpSpreadsheetTests\Reader\Html;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Reader\Html;
							 | 
						||
| 
								 | 
							
								use PHPUnit\Framework\TestCase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class HtmlLoadStringTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function testCanLoadFromString(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $html = '<table>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello<br />World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello<br>World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                </table>';
							 | 
						||
| 
								 | 
							
								        $spreadsheet = (new Html())->loadFromString($html);
							 | 
						||
| 
								 | 
							
								        $firstSheet = $spreadsheet->getSheet(0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A1');
							 | 
						||
| 
								 | 
							
								        self::assertFalse($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A2');
							 | 
						||
| 
								 | 
							
								        self::assertTrue($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								        $cellValue = $firstSheet->getCell('A2')->getValue();
							 | 
						||
| 
								 | 
							
								        self::assertStringContainsString("\n", $cellValue);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A3');
							 | 
						||
| 
								 | 
							
								        self::assertTrue($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								        $cellValue = $firstSheet->getCell('A3')->getValue();
							 | 
						||
| 
								 | 
							
								        self::assertStringContainsString("\n", $cellValue);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testLoadInvalidString(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->expectException(ReaderException::class);
							 | 
						||
| 
								 | 
							
								        $html = '<table<>';
							 | 
						||
| 
								 | 
							
								        $spreadsheet = (new Html())->loadFromString($html);
							 | 
						||
| 
								 | 
							
								        $firstSheet = $spreadsheet->getSheet(0);
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A1');
							 | 
						||
| 
								 | 
							
								        self::assertFalse($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testCanLoadFromStringIntoExistingSpreadsheet(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $html = '<table>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello<br />World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Hello<br>World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                </table>';
							 | 
						||
| 
								 | 
							
								        $reader = new Html();
							 | 
						||
| 
								 | 
							
								        $spreadsheet = $reader->loadFromString($html);
							 | 
						||
| 
								 | 
							
								        $firstSheet = $spreadsheet->getSheet(0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A1');
							 | 
						||
| 
								 | 
							
								        self::assertFalse($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A2');
							 | 
						||
| 
								 | 
							
								        self::assertTrue($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								        $cellValue = $firstSheet->getCell('A2')->getValue();
							 | 
						||
| 
								 | 
							
								        self::assertStringContainsString("\n", $cellValue);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $cellStyle = $firstSheet->getStyle('A3');
							 | 
						||
| 
								 | 
							
								        self::assertTrue($cellStyle->getAlignment()->getWrapText());
							 | 
						||
| 
								 | 
							
								        $cellValue = $firstSheet->getCell('A3')->getValue();
							 | 
						||
| 
								 | 
							
								        self::assertStringContainsString("\n", $cellValue);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $reader->setSheetIndex(1);
							 | 
						||
| 
								 | 
							
								        $html = '<table>
							 | 
						||
| 
								 | 
							
								                    <tr>
							 | 
						||
| 
								 | 
							
								                        <td>Goodbye World</td>
							 | 
						||
| 
								 | 
							
								                    </tr>
							 | 
						||
| 
								 | 
							
								                </table>';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        self::assertEquals(1, $spreadsheet->getSheetCount());
							 | 
						||
| 
								 | 
							
								        $spreadsheet = $reader->loadFromString($html, $spreadsheet);
							 | 
						||
| 
								 | 
							
								        self::assertEquals(2, $spreadsheet->getSheetCount());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |