NumberFormatBuiltinTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Style;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
  5. use PHPUnit\Framework\TestCase;
  6. class NumberFormatBuiltinTest extends TestCase
  7. {
  8. public function testBuiltinCodes(): void
  9. {
  10. $spreadsheet = new Spreadsheet();
  11. $sheet = $spreadsheet->getActiveSheet();
  12. $cell1 = $sheet->getCell('A1');
  13. $cell1->setValue(1);
  14. $cell1->getStyle()->getNumberFormat()->setBuiltInFormatCode(2); // 0.00
  15. self::assertEquals('1.00', $cell1->getFormattedValue());
  16. $cell2 = $sheet->getCell('A2');
  17. $cell2->setValue(1234);
  18. $cell2->getStyle()->getNumberFormat()->setFormatCode('#,##0'); // builtin 3
  19. self::assertEquals(3, $cell2->getStyle()->getNumberFormat()->getBuiltinFormatCode());
  20. self::assertEquals('1,234', $cell2->getFormattedValue());
  21. $cell3 = $sheet->getCell('A3');
  22. $cell3->setValue(1234);
  23. $cell3->getStyle()->getNumberFormat()->setFormatCode(''); // General
  24. self::assertEquals(NumberFormat::FORMAT_GENERAL, $cell3->getStyle()->getNumberFormat()->getFormatCode());
  25. self::assertEquals(0, $cell3->getStyle()->getNumberFormat()->getBuiltinFormatCode());
  26. self::assertEquals('1234', $cell3->getFormattedValue());
  27. // non-supervisor
  28. $numberFormat = new NumberFormat();
  29. $numberFormat->setBuiltInFormatCode(4);
  30. self::assertEquals('#,##0.00', $numberFormat->getFormatCode());
  31. }
  32. }