99 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace PhpOffice\PhpSpreadsheetTests\Writer\Ods;
 | |
| 
 | |
| use PhpOffice\PhpSpreadsheet\Calculation\Functions;
 | |
| use PhpOffice\PhpSpreadsheet\Cell\DataType;
 | |
| use PhpOffice\PhpSpreadsheet\Shared\Date;
 | |
| use PhpOffice\PhpSpreadsheet\Spreadsheet;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Color;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Fill;
 | |
| use PhpOffice\PhpSpreadsheet\Style\Font;
 | |
| use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
 | |
| use PhpOffice\PhpSpreadsheet\Writer\Ods;
 | |
| use PhpOffice\PhpSpreadsheet\Writer\Ods\Content;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| class ContentTest extends TestCase
 | |
| {
 | |
|     private $samplesPath = 'tests/data/Writer/Ods';
 | |
| 
 | |
|     /**
 | |
|      * @var string
 | |
|      */
 | |
|     private $compatibilityMode;
 | |
| 
 | |
|     protected function setUp(): void
 | |
|     {
 | |
|         parent::setUp();
 | |
| 
 | |
|         $this->compatibilityMode = Functions::getCompatibilityMode();
 | |
|         Functions::setCompatibilityMode(Functions::COMPATIBILITY_OPENOFFICE);
 | |
|     }
 | |
| 
 | |
|     protected function tearDown(): void
 | |
|     {
 | |
|         parent::tearDown();
 | |
|         Functions::setCompatibilityMode($this->compatibilityMode);
 | |
|     }
 | |
| 
 | |
|     public function testWriteEmptySpreadsheet(): void
 | |
|     {
 | |
|         $content = new Content(new Ods(new Spreadsheet()));
 | |
|         $xml = $content->write();
 | |
| 
 | |
|         self::assertXmlStringEqualsXmlFile($this->samplesPath . '/content-empty.xml', $xml);
 | |
|     }
 | |
| 
 | |
|     public function testWriteSpreadsheet(): void
 | |
|     {
 | |
|         $workbook = new Spreadsheet();
 | |
| 
 | |
|         // Worksheet 1
 | |
|         $worksheet1 = $workbook->getActiveSheet();
 | |
|         $worksheet1->setCellValue('A1', 1); // Number
 | |
|         $worksheet1->setCellValue('B1', 12345.6789); // Number
 | |
|         $worksheet1->setCellValue('C1', '1'); // Number without cast
 | |
|         $worksheet1->setCellValueExplicit('D1', '01234', DataType::TYPE_STRING); // Number casted to string
 | |
|         $worksheet1->setCellValue('E1', 'Lorem ipsum'); // String
 | |
| 
 | |
|         $worksheet1->setCellValue('A2', true); // Boolean
 | |
|         $worksheet1->setCellValue('B2', false); // Boolean
 | |
|         $worksheet1->setCellValueExplicit(
 | |
|             'C2',
 | |
|             '=IF(A3, CONCATENATE(A1, " ", A2), CONCATENATE(A2, " ", A1))',
 | |
|             DataType::TYPE_FORMULA
 | |
|         ); // Formula
 | |
| 
 | |
|         $worksheet1->setCellValue('D2', Date::PHPToExcel(1488635026)); // Date
 | |
|         $worksheet1->getStyle('D2')
 | |
|             ->getNumberFormat()
 | |
|             ->setFormatCode(NumberFormat::FORMAT_DATE_DATETIME);
 | |
| 
 | |
|         // Styles
 | |
|         $worksheet1->getStyle('A1')->getFont()->setBold(true);
 | |
|         $worksheet1->getStyle('B1')->getFont()->setItalic(true);
 | |
|         $worksheet1->getStyle('C1')->getFont()->setName('Courier');
 | |
|         $worksheet1->getStyle('C1')->getFont()->setSize(14);
 | |
|         $worksheet1->getStyle('C1')->getFont()->setColor(new Color(Color::COLOR_BLUE));
 | |
| 
 | |
|         $worksheet1->getStyle('C1')->getFill()->setFillType(Fill::FILL_SOLID);
 | |
|         $worksheet1->getStyle('C1')->getFill()->setStartColor(new Color(Color::COLOR_RED));
 | |
| 
 | |
|         $worksheet1->getStyle('C1')->getFont()->setUnderline(Font::UNDERLINE_SINGLE);
 | |
|         $worksheet1->getStyle('C2')->getFont()->setUnderline(Font::UNDERLINE_DOUBLE);
 | |
|         $worksheet1->getStyle('D2')->getFont()->setUnderline(Font::UNDERLINE_NONE);
 | |
| 
 | |
|         // Worksheet 2
 | |
|         $worksheet2 = $workbook->createSheet();
 | |
|         $worksheet2->setTitle('New Worksheet');
 | |
|         $worksheet2->setCellValue('A1', 2);
 | |
| 
 | |
|         // Write
 | |
|         $content = new Content(new Ods($workbook));
 | |
|         $xml = $content->write();
 | |
| 
 | |
|         self::assertXmlStringEqualsXmlFile($this->samplesPath . '/content-with-data.xml', $xml);
 | |
|     }
 | |
| }
 | 
