60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx;
 | |
| 
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| class LocaleFloatsTest extends TestCase
 | |
| {
 | |
|     protected $localeAdjusted;
 | |
| 
 | |
|     protected $currentLocale;
 | |
| 
 | |
|     protected function setUp(): void
 | |
|     {
 | |
|         $this->currentLocale = setlocale(LC_ALL, '0');
 | |
| 
 | |
|         if (!setlocale(LC_ALL, 'fr_FR.UTF-8', 'fra_fra')) {
 | |
|             $this->localeAdjusted = false;
 | |
| 
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         $this->localeAdjusted = true;
 | |
|     }
 | |
| 
 | |
|     protected function tearDown(): void
 | |
|     {
 | |
|         if ($this->localeAdjusted) {
 | |
|             setlocale(LC_ALL, $this->currentLocale);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function testLocaleFloatsCorrectlyConvertedByWriter(): void
 | |
|     {
 | |
|         if (!$this->localeAdjusted) {
 | |
|             self::markTestSkipped('Unable to set locale for testing.');
 | |
|         }
 | |
| 
 | |
|         $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
 | |
|         $spreadsheet->getActiveSheet()->setCellValue('A1', 1.1);
 | |
| 
 | |
|         $filename = 'decimalcomma.xlsx';
 | |
|         $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
 | |
|         $writer->save($filename);
 | |
| 
 | |
|         $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
 | |
|         $spreadsheet = $reader->load($filename);
 | |
|         unlink($filename);
 | |
| 
 | |
|         $result = $spreadsheet->getActiveSheet()->getCell('A1')->getValue();
 | |
| 
 | |
|         ob_start();
 | |
|         var_dump($result);
 | |
|         preg_match('/(?:double|float)\(([^\)]+)\)/mui', ob_get_clean(), $matches);
 | |
|         self::assertArrayHasKey(1, $matches);
 | |
|         $actual = $matches[1];
 | |
|         self::assertEquals('1,1', $actual);
 | |
|     }
 | |
| }
 |